标签盘点的防冲突方法、读写器和标签盘点系统与流程

文档序号:16265435发布日期:2018-12-14 21:53阅读:531来源:国知局
标签盘点的防冲突方法、读写器和标签盘点系统与流程
本发明涉及射频识别
技术领域
,具体涉及一种标签盘点的防冲突方法、读写器和标签盘点系统。
背景技术
射频识别(radiofrequencyidentification,rfid)是一种自动识别技术,是构建物联网的关键技术。rfid系统主要由读写器和应答器构成。应答器主要由天线、耦合元件及芯片组成,一般来说用标签作为应答器,每个标签具有唯一的电子产品代码,附着在物体上标识目标对象。读写器,或称为阅读器,主要由天线、耦合元件及芯片组成,是读取和/或写入标签信息的设备,可设计为可移动的手持设备或固定设备。rfid技术在各个领域,特别是在物流、零售、服装等领域的应用,越来越广泛,但同时要求越来越高,特别是手持设备上的rfid,需要对不确定数量的标签,例如单标签、少量标签或者多标签甚至大量标签进行无漏读、连续、高效率的盘点。rfid应用于多标签的场景时,若2个或2个以上标签同时与读写器通信,由于无源rfid标签共用一个传输信道,标签之间的碰撞冲突将导致标签不能与读写器正常通信。因此,防冲突方法一直是rfid中重要研究内容之一。基于随机数产生器的时隙算法是一种常用的防冲突算法。采用时隙算法,在进行大量标签盘点时需要控制标签返回数据的时隙,让时隙大一些,可以减少标签返回数据的冲突,但是这样在读取单标签或者少量标签的时候会有读取标签不连续现象,即,标签几秒才读取到一次数据;而为了让读取少量标签数据连续,需要把标签返回数据的时隙减小,但这样,在盘点大量标签时就会出现严重的标签冲突现象,导致盘点标签不全漏读的问题。目前现有的解决办法是在读取少量标签时设置一种工作模式,在盘点大量标签时又设置另一种工作模式,但是这样在移动的手持设备使用上很不方便并且效率低,两种工作模式的切换并不能很好的适应标签数量的变化,不能较好的解决标签冲突问题。技术实现要素:本发明实施例提供一种标签盘点的防冲突方法、读写器和标签盘点系统,用于解决标签盘点时的冲突、碰撞问题,实现高效、无漏、连续读取标签。为解决上述技术问题,采用如下技术方案:本发明第一方面,提供一种标签盘点的防冲突方法,包括:读写器检测识别范围内标签的密集度;根据标签的密集度调整盘点周期的长度,其中,在标签密集时延长盘点周期以减少单位时间内读取标签的次数,在标签稀疏时缩短盘点周期以增加单位时间内读取标签的次数。一种可能的实现方式中,读写器检测识别范围内标签的密集度,包括:从盘点周期的第1个时隙起,对无标签应答随机数的次数进行统计得到时隙空闲次数rn16to,以及,对标签未正确返回epc号的次数进行统计得到标签冲突次数epcto;估算表征标签密集度的参数value=a×rn16to-b×epcto,a和b均为大于0的整数。一种可能的实现方式中,根据标签的密集度调整盘点周期的长度,包括:根据表征标签密集度的参数value和设定的阈值threshold调整q值,q值决定盘点周期的长度;其中,若value≥threshold,则将q值减1;若value≤-threshold,则将q值加1;若-threshold<value<threshold,则q值保持不变;threshold=c×q;q为大于0的整数,c为正数;发送queryadjust命令,将调整后的q值发送给标签。一种可能的实现方式中,所述方法具体包括:读写器发送包含参数q的query命令,开启一个盘点周期,一个盘点周期包括2q个时隙,并将参数query_slot置入自身的时隙计数器,query_slot的初始值为2q-1;标签获取参数q,从(0,2q-1)范围内选取一个随机数tag_slot置入自身的时隙计数器;tag_slot为0的标签应答随机数rn16,tag_slot不为0的标签处于静默状态;读写器存储表示时隙空闲次数的变量rn16to,若没有标签应答随机数,则将变量rn16to加1;读写器发送ack命令,该ack命令携带收到的随机数rn16,收到ack命令的对应标签应答epc号,对应标签是指该ack命令携带的随机数rn16所属的标签;读写器存储表示标签冲突次数的变量epcto和表示标签盘点数量的变量tagnumber,若标签返回错误的epc号或不返回epc号则变量epcto加1,若标签返回正确的epc号则变量tagnumber加1;估算表征标签密集度的参数value=rn16to-4×epcto,并设置阈值threshold=q/2;判断abs(value)≥threshold是否成立,并进一步判断q值是否为0;在q值不等于0时,根据表征标签密集度的参数value和设定的阈值threshold进行q值调整:其中,若value≥threshold,则将q值减1;若value≤-threshold,则将q值加1;若-threshold<value<threshold,则q值保持不变;读写器发送queryadjust命令,将调整后的q值发送给标签;在q值为0时,退出盘点。一种可能的实现方式中,进一步判断q值是否为0之前,还包括:若abs(value)<threshold,判断否收到退出命令cancel或者是否达到盘点时间query_time,若是,则退出盘点,否则,判断query_slot是否为0;若abs(value)<threshold,且query_slot不为0,则发送queryrep命令,同时query_slot的计数值减1;tag_slot为0且已应答epc的标签收到queryrep命令后,从默认的第一状态转移至第二状态;tag_slot不为0的标签收到queryrep命令后,将自身的tag_slot计数值减1;若abs(value)<threshold,且query_slot为0,执行判断q值是否为0的步骤;其中,标签为第一状态时参与标签盘点,标签为第二状态时不参与标签盘点且达到预设的持续时间后自行转移至第一状态。一种可能的实现方式中,query命令还包含状态标记a和时间参数session,状态标记a用于指示标签使自身处于第一状态,时间参数session用于指示标签转移到第二状态后应保持的持续时间;所述方法还包括:一个盘点周期结束后,获取变量tagnumber的值,根据tagnumber的值设定下一个盘点周期中的时间参数session,时间参数session与变量tagnumber正相关。本发明第二方面提供一种用于标签盘点的读写器,包括:检测模块,用于检测识别范围内标签的密集度;调整模块,用于根据标签的密集度调整盘点周期的长度,包括在标签密集时延长盘点周期以减少单位时间读取标签的次数,在标签稀疏时缩短盘点周期以增加单位时间读取标签的次数。一种可能的实现方式中,所述检测模块包括:统计单元,用于从盘点周期的第1个时隙起,对无标签应答随机数的次数进行统计得到时隙空闲次数rn16to,以及,对标签未正确返回epc号的次数进行统计得到标签冲突次数epcto;估算单元,用于估算表征标签密集度的参数value=a×rn16to-b×epcto,a和b均为大于0的整数。一种可能的实现方式中,所述调整模块包括:q值调整单元,用于根据表征标签密集度的参数value和设定的阈值threshold调整q值,q值决定盘点周期的长度;其中,若value≥threshold,则将q值减1;若value≤-threshold,则将q值加1;若-threshold<value<threshold,则q值保持不变;threshold=c×q;q为大于0的整数,c为正数;命令发送单元,用于发送queryadjust命令,将调整后的q值发送给标签。本发明第三方面提供一种标签盘点系统,包括读写器和多个标签,所述读写器,用于:发送包含参数q的query命令,开启一个盘点周期,一个盘点周期包括2q个时隙,并将参数query_slot置入时隙计数器,query_slot的初始值为2q-1;所述标签,用于:获取参数q,从(0,2q-1)范围内选取一个随机数tag_slot置入自身的时隙计数器;tag_slot为0的标签应答随机数rn16,tag_slot不为0的标签处于静默状态;所述读写器还用于:存储表示时隙空闲次数的变量rn16to,若没有标签应答,则将变量rn16to加1;发送ack命令,该ack命令携带收到的随机数rn16;所述标签,还用于:收到ack命令且该ack命令中携带的随机数rn16属于自己时,应答epc号;所述读写器还用于:存储表示标签冲突次数的变量epcto和表示标签盘点数量的变量tagnumber,若标签返回错误的epc号或不返回epc号则变量epcto加1,若标签返回正确的epc号则变量tagnumber加1;所述读写器还用于:估算表征标签密集度的参数value=rn16to-4×epcto,并设置阈值threshold=q/2;判断abs(value)≥threshold是否成立,并进一步判断q值是否为0;在q值不等于0时,根据标签密集度和设定的阈值threshold进行q值调整:其中,若value≥threshold,则将q值减1;若value≤-threshold,则将q值加1;若-threshold<value<threshold,则q值保持不变;发送queryadjust命令,将调整后的q值发送给标签;在q值为0时,退出盘点。值得说明的是,本文中:rn16to是时隙空闲次数,若该时隙没有标签应答,则rn16to加1。rn16to越大,表示空闲的时隙数越多,说明标签的数量越少,标签越稀疏。tagnumber是标签盘点数量,其原理是:假设某时隙有一个标签应答随机数rn16,读写器收到并正确解析该随机数rn16后,会将该随机数rn16携带在ack命令中发送给标签;标签收到ack命令并解析其中的随机数rn16属于自己时,应答epc号。读写器收到正确的epc号,表示成功盘点到一个标签,则将tagnumber加1,于是tagnumber可用来表示成功盘点的标签的数量。epcto是标签冲突次数,其原理是:假设某时隙有两个或以上标签应答,则读写器会在该时隙收到两个或以上随机数rn16,导致读写器无法正确解析收到的随机数rn16;于是读写器发送的ack命令将携带一个错误的随机数rn16,这样就不会有标签返回epc号;因此,标签不返回epc号就可以表示该时隙有标签冲突,则将epcto加1。另外,假设某个周期虽然只有一个标签正确应答,并不与其它标签冲突,但因为某些因素例如环境干扰等因素,导致读写器未收到正确的epc号,本文中仍将其视为标签冲突,将epcto加1计数,因为对没有正确收到epc的标签发送nak命令,此标签收到nak命令后,该标签的状态和冲突标签的状态变成一样,下一个queryadjust命令来的时候重新调整标签的tag_slot,等待再次发送rn16的机会,这样就保证了这个错误epc的标签不会被漏读。epcto越大,表示标签冲突的次数越多,说明标签的数量越多,也就是说标签越密集。可见,变量rn16to和epcto分别可以表示标签的稀疏程度和密集程度,将这两个变量加权比较,即可用来表征标签的密集度。可用数学公式来表达表征标签密集度的参数value=a×rn16to-b×epcto,a和b均为大于0的整数。实践发现,当a=1,b=4时,可以较真实的反映标签的密集度。以上,本发明实施例提供了一种标签盘点的防冲突解决方案,包括防冲突方法、读写器和标签盘点系统。本发明技术方案是基于动态q值调整算法提出的改进方案。动态q值调整算法属于时隙算法的范畴,是解决标签冲突问题常用的方法之一,该算法中q值决定盘点周期的长度。本发明技术方案,通过调整盘点周期的长度来解决或减少标签冲突,调整的依据是标签的密集度,该方法实现了实时检测标签的密集度,进而,实时调整盘点周期的长度,实现在标签密集时延长盘点周期以减少单位时间内读取标签的次数,在标签稀疏时缩短盘点周期以增加单位时间内读取标签的次数,以此解决标签盘点时的冲突、碰撞问题,取得高效、无漏、连续读取标签的效果。相对于现有的在两种工作模式之间切换的方案,本发明实现了对盘点周期的更细微、更精准的调整,使盘点周期总能适应于标签数量或者说标签密集度而得到随时的调整,从而减少标签碰撞冲突,实现更高效的标签盘点。附图说明为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本发明一个实施例提供的标签盘点的防冲突方法的流程示意图;图2是本发明实施例中执行方法的一个盘点周期的流程示意图;图3是本发明实施例中session参数的状态转换图;图4是本发明一个实施例提供的读写器的结构示意图;图5是本发明一个实施例提供的标签盘点系统的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。下面通过具体实施例,分别进行详细的说明。为解决现有技术问题,本发明实施例提供一种用于标签盘点的防冲突解决方案,该方案是基于动态q值调整算法提出的改进方案。动态q值调整算法属于时隙算法的范畴,是解决标签冲突问题常用的方法之一。本发明技术方案的核心思想是,根据读写器可识别磁场范围内的可识别标签的密集度,动态调整盘点参数,达到减少标签冲突并能全部盘点的目的,属于超高频(ultrahighfrequency,uhf)rfid射频识别
技术领域
。为实现上述目的,本发明实施例提供一种标签盘点的防冲突方法、读写器和标签盘点系统。标签盘点系统包括读写器和多个标签。本文中的标签,是指rfid标签、射频标签或电子标签,简称为标签(tag)。本文中的读写器,也称为阅读器(reader),可以是uhf读写器。本文中的标签盘点系统,是一种rfid系统。本发明实施例技术可用于物流、零售、服装等各种领域。请参考图1,本发明一个实施例提供一种标签盘点的防冲突方法,可包括:a1、读写器检测识别范围内标签的密集度。读写器的磁场范围即为其识别范围,基于动态q值调整算法,读写器与识别范围内的标签进行通信并交互信息,读写器可通过交互的信息统计计算,获取表征标签的密集度的参数。a2、根据标签的密集度调整盘点周期的长度,其中,在标签密集时延长盘点周期以减少单位时间内读取标签的次数,在标签稀疏时缩短盘点周期以增加单位时间内读取标签的次数。读写器可通过调整q值来调整盘点周期。在动态q值调整算法中,q值决定一个盘点周期的时隙计数,而时隙的多少决定了盘点周期的长度。因此,可通过增大q值来延长盘点周期,或通过减小q值来缩短盘点周期。一些可行的实现方式中,步骤a1可包括:从盘点周期的第1个时隙起,对无标签应答随机数的次数进行统计得到时隙空闲次数rn16to,以及,对标签未正确返回epc号的次数进行统计得到标签冲突次数epcto;估算表征标签密集度的参数value=a×rn16to-b×epcto,a和b均为大于0的整数。一些可行的实现方式中,步骤a2可包括:根据表征标签密集度的参数value和设定的阈值threshold调整q值,q值决定盘点周期的长度;其中,若value≥threshold,则将q值减1;若value≤-threshold,则将q值加1;若-threshold<value<threshold,则q值保持不变;threshold=c×q;q为大于0的整数,c为正数;发送queryadjust命令,将调整后的q值发送给标签。优选的方式中,可选择a=1,b=4,使value=rn16to-4×epcto;以及,可选择threshold=q/2;以实现更好的盘点效果。如上,根据本发明实施例提出的方法,读写器自动检测磁场范围内标签的密集度,并根据标签密集度设置阈值,自动、动态调整射频工作参数以实现无漏读、连续、高效率的盘点。在标签少的时候改变参数让标签在单位时间内读取的次数增加以达到读取连续的效果;在标签多的时候改变参数让标签在单位时间内读取的次数减少以减少标签数据的冲突达到高效效率、无漏读的效果。下面通过一个具体应用例对本发明方法进行详细说明:首先,对动态q值调整算法使用到的命令做一个简单介绍,以便于理解。query命令:query命令用于初始化一个盘点过程,开启一个盘点周期,决定哪些标签参与本盘点周期,这里“盘点周期”定义为连续两个query命令之间的时间。query命令包含一个时隙计数参数q。整个盘点周期被划分为2q个时隙(或称为时槽)。当接收到一条query命令时,被盘点的标签应在(0,2q–1)范围内选出一个整数为随机数,并将这个随机数置入它们的时隙计数器。随机数选到零值的标签立即应答一个随机数rn16。选到非零数的标签等待下一条queryadjust或queryrep命令。queryadjust命令:该命令用于调整q值。标签在接收一条queryadjust命令时,首先调整q值(增加、减少或不变),然后在(0,2q–1)范围内选出一个随机数rn16,置入它们的时隙计数器。随机数选到零值的标签立即应答。选到非零值的标签等待下一条queryadjust或queryrep命令。queryrep命令:选到非零值的标签每接收到一条queryrep命令后,即将它们的时隙计数器减1。当它们的时隙计数器减到零时,标签立即应答一个随机数rn16。读写器发一次queryrep命令,意味着进入下一个时隙。其次,介绍本实施例中防冲突方法的流程。请参考图2,一个盘点周期的流程可包括以下步骤:0、开始:读写器初始化各参数。1、读写器发送包含参数q的query命令,该命令还可以包括状态标记和时间参数session。可选的,q=4,状态标记为a,session为s1。a用于指示标签的状态为第一状态,标签的第二状态用状态标记b表示。标记为a的标签参与盘点过程;标记为b的标签不参与盘点过程,不应答读写器。session用于指示标签转为第二状态后的持续时间,达到该时间后标签自动转移回第一状态。session可以设定若干个时间值,如s0、s1、s2、s3,具体在后文说明。标签刚上电默认处于第一状态,默认的状态标记为a。query命令,开启一个盘点周期,一个盘点周期包括2的q次方个时隙,用0表示第1个时隙,标签最大产生的时隙(slot)即为2q-1。可用参数query_slot表示当前最大的时隙,其初始值为2q-1,query_slot这个参数值为后面发送query_rep命令的次数做依据。读写器将参数query_slot置入自身的时隙计数器,query_slot的初始值为2q-1。2、标签收到query命令或queryadjust命令后,获取q值,并根据q值,标签的slot随机产生0≤tag_slot≤(2q-1)的随机数,slot值是标签是否可以应答的依据。标签将选择的随机数tag_slot置入自身的时隙计数器,每收到一次queryrep命令,即,每过1个时隙,该时隙计数器的值减1。3、tag_slot为0的标签应答rn16,rn16是16位的随机数;tag_slot不为0的标签处于静默状态,一直等到tag_slot为0才可以应答;没有标签应答随机数,则读写器存储的变量rn16to加1计数。rn16to表示时隙空闲次数,用于统计无标签应答的次数。4、读写器收到标签返回的正确rn16,则应答ack(acknowledgement,确认)命令给该标签,ack命令中可携带该标签的rn16使得只有该标签可收到,以指示该标签应答epc(electronicproductcode,电子产品代码)号。若该标签返回错误的epc号或者不返回epc号,则读写器存储的变量epcto加1。epcto表示标签冲突次数,用于统计标签冲突的次数。若标签返回正确的epc号,读写器收到返回正确epc号,则读写器存储的变量tagnumber加1。tagnumber表示标签盘点数量,用于统计收到正确epc号的标签数量,然后可通过串口dma发送给与读写器通信的主机。可选的,标签返回epc号的同时可返回一个循环冗余校验(cyclicredundancycheck,crc)号码,读写器可根据收到的crc判断收到的epc号是否正确。5、通过rn16to和epcto与阈值的关系来估算和判断标签的密集度。经过理论推理以及各种环境的多次试验,得到如下较优选的关系式:abs(value)≥threshold,式中,value=rn16to-4×epcto;该关系式中,threshold为设定阈值,优选等于当前使用的q值的一半即threshold=q/2;abs(value)表示对value取绝对值。当然,这个公式不是唯一的,可以根据具体应用场合或者个人的试验结果得出其他的关系,本发明的核心是算法的思想,具体的参数值或者参数对应关系是可选的。本步骤中,判断是否满足上述阈值条件:满足阈值条件则进入步骤9进行下一步判断;没有满足阈值条件则进入步骤6。6、若abs(value)<threshold,判断是否收到退出命令cancel或者是否达到盘点时间query_time,若是,则退出盘点,否则,进入步骤7。本步骤为盘点周期中断的出口。7、判断query_slot是否为0,不为0说明在产生随机数范围内,还是有标签的slot不为0,也就是可能还有标签没有应答。8、query_slot不为0,则发送queryrep命令,同时query_slot计数值减1;tag_slot为0且已经应答epc的标签收到queryrep命令后,标志a反转为b,即,从默认的第一状态转移至第二状态,状态改变后持续时间如表1。如表1所示,本文的一个实施例给出4种可选择设定的持续时间。tag_slot不为0的标签收到queryrep命令后,标签本身的tag_slot值减1。然后返回步骤3。9、判断query_q值是否为0,即判断q值是否为0。q值等于0则说明此次盘点周期结束,退出盘点。q值不等于0则通过判断阈值条件,调整q值,具体如步骤10。10、query_q不等于0,则进入对参数rn16to和epcto与阈值条件的判断,以确定对q值如何从新调整,它们的关系分为以下三种:a、-threshold<value<threshold,可以解释为冲突系数和无标签返回量系数相当,q值保持不变,再用原来的q值参数进行盘点。b、value≥threshold,表示无标签返回的系数远大于冲突的系数,说明标签比较稀疏,也就是说标签比较少,需要缩小范围,所以再次盘点的q值在query_q值基础上减1。c、value≤threshold,表示冲突系数远大于无标签返回系数,说明标签比较密集,标签量比较大需要q值在query_q值基础上再加1,以减少标签冲突。调整过的q值通过queryadjust命令发送给标签群中的每个标签。若记调整后的q值为q1,则步骤4中没有返回epc的所有标签,也就是标记为a并且tag_slot大于0的标签,重新产生slot值为0≤tag_slot≤(2q1-1)的随机数,置入自身的时隙计数器;tag_slot为0并且标记为a的标签,收到queryadjust命令后其标记也会反转为b,转移到第二状态。然后算法回到步骤2。需要注意,图2中用2^q表示2的q次方,用2^q1表示2的q1次方。以上,对本发明实施例方法的一个盘点周期的流程进行了描述。由上可见,在盘点过程中读写器会根据磁场识别范围内的标签的密集度动态调整q值的参数以达到高效率、无漏读盘点标签群。算法中有个关键点就是在通过阈值判断标签冲突系数时的公式:value=a×rn16to-b×epcto。优选的,abs(rn16to-4*epcto)>=threshold,其中threshold=当前使用的q值除以2,rn16to、epcto和threshold之间的关系是本发明通过大量实验和仿真得到的结果,这个公式是可以根据应用环境或者使用条件调整它们之间的关系的。本发明实施例方法,还可以包括调整时间参数session的步骤。可以通过上一个盘点周期获取的统计信息,来调整下一个盘点周期中的时间参数session。一种实施方式中,一个盘点周期结束后,读写器可获取变量tagnumber的值,根据tagnumber的值设定下一个盘点周期中的时间参数session,时间参数session与变量tagnumber正相关。在一个具体的应用场景中,上述方法还可包括:(1)在盘点开始发送query命令时选择参数:query_q=4,标志为a(长时间断电刚上电默认的标记是a),session为s1,session参数的选取是根据表1,各个具体session中标记保持的时间决定的,因为刚开始还不知道标签具体数量,所以选择s1最合适。表1session参数的取值session标记的持续时间s0不确定(时间很短一般小于200毫秒)s1500毫秒<持续时间<5秒s22秒<持续时间s32秒<持续时间(2)设置好参数后运用算法盘点,一个盘点周期结束后,得到步骤4中tagnumber的参数值即成功盘点到的标签数量。对tagnumber的数量分为以下三个数量级:a、tagnumber<=10;b、10<tagnumber<=90;c、tagnumber>90。一个盘点周期结束后,重新进行新的盘点周期时可根据tagnumber的数量对新的session参数进行调整,使得在标签数量大时,要标记保持的时间比较久以减少冲突,增加吞吐量更高效率的盘点标签;在标签数量比较少时,要标记保持的时间短,以便可以在比较短的时间内重复盘点,达到连续盘点的效果,不然如果只有一两张标签,好几秒钟才盘点到一次,会误认为设备性能出现问题。session参数的状态转换图如图3所示。(3)一个盘点周期结束后,根据tagnumber的数量调整session参数,再进行一个新的盘点周期,循环盘点,不断的自动调整工作参数。这样的算法在手持移动设备中非常实用,因为手持移动设备是不断移动来盘点标签的,标签会有时多时少的情况,就很好的解决了问题,大大的提高了效率。以上,对本发明实施例提供的用于标签盘点的防冲突方法进行了说明。为便于实施本发明技术方案,下面还提供相关的装置和系统。请参考图4,本发明的一个实施例,提供一种用于标签盘点的读写器,包括:检测模块41,用于检测识别范围内标签的密集度;调整模块42,用于根据标签的密集度调整盘点周期的长度,包括在标签密集时延长盘点周期以减少单位时间读取标签的次数,在标签稀疏时缩短盘点周期以增加单位时间读取标签的次数。在一个实施例中,所述检测模块41可包括:统计单元4101,用于从盘点周期的第1个时隙起,对无标签应答随机数的次数进行统计得到时隙空闲次数rn16to,以及,对标签未正确返回epc号的次数进行统计得到标签冲突次数epcto;估算单元4102,用于估算表征标签密集度的参数value=a×rn16to-b×epcto,a和b均为大于0的整数。在一个实施例中,所述调整模块42可包括:q值调整单元4201,用于根据表征标签密集度的参数value和设定的阈值threshold调整q值,q值决定盘点周期的长度;其中,若value≥threshold,则将q值减1;若value≤-threshold,则将q值加1;若-threshold<value<threshold,则q值保持不变;threshold=c×q;q为大于0的整数,c为正数;命令发送单元4202,用于发送queryadjust命令,将调整后的q值发送给标签。关于本实施例读写器的更多的说明,请参考前文方法实施例中的描述。请参考图5,本发明的一个实施例,还提供一种标签盘点系统,包括读写器51和多个标签52,其特征在于,所述读写器51,用于:发送包含参数q的query命令,开启一个盘点周期,一个盘点周期包括2q个时隙,并将参数query_slot置入时隙计数器,query_slot的初始值为2q-1;所述标签52,用于:获取参数q,从(0,2q-1)范围内选取一个随机数tag_slot置入自身的时隙计数器;tag_slot为0的标签应答随机数rn16,tag_slot不为0的标签处于静默状态;所述读写器51还用于:存储表示时隙空闲次数的变量rn16to,若没有标签应答,则将变量rn16to加1;发送ack命令,该ack命令携带收到的随机数rn16;所述标签52,还用于:收到ack命令且该ack命令中携带的随机数rn16属于自己时,应答epc号;所述读写器51还用于:存储表示标签冲突次数的变量epcto和表示标签盘点数量的变量tagnumber,若标签返回错误的epc号或不返回epc号则变量epcto加1,若标签返回正确的epc号则变量tagnumber加1;所述读写器51还用于:估算表征标签密集度的参数value=rn16to-4×epcto,并设置阈值threshold=q/2;判断abs(value)≥threshold是否成立,并进一步判断q值是否为0;在q值不等于0时,根据标签密集度和设定的阈值threshold进行q值调整:其中,若value≥threshold,则将q值减1;若value≤-threshold,则将q值加1;若-threshold<value<threshold,则q值保持不变;发送queryadjust命令,将调整后的q值发送给标签;在q值为0时,退出盘点。关于本实施例系统的更多的说明,请参考前文方法实施例中的描述。综上,本发明实施例提供了一种用于标签盘点的防冲突解决方案,通过调整盘点周期的长度来解决或减少标签冲突,调整的依据是标签的密集度,该方法实现了实时检测标签的密集度,进而,实时调整盘点周期的长度,实现在标签密集时延长盘点周期以减少单位时间内读取标签的次数,在标签稀疏时缩短盘点周期以增加单位时间内读取标签的次数,以此解决标签盘点时的冲突、碰撞问题,取得高效、无漏、连续读取标签的效果。相对于现有的在两种工作模式之间切换的方案,本发明实现了对盘点周期的更细微、更精准的调整,使盘点周期总能适应于标签数量或者说标签密集度而得到随时的调整,从而减少标签碰撞冲突,实现更高效的标签盘点。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。上述实施例仅用以说明本发明的技术方案,而非对其限制;本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1