一种UHFRFID多标签处理算法的改进
扫描二维码
随时随地手机看文章
引 言
无源RFID(无线射频识别技术)是一种非接触式自动识别技术,根据频段可分为 LFRFID(125kHz),HFRFID(13.56MHz)和UHF RFID(840~960 MHz)。其中,UHF RFID由于标签读取距离远、存储容量大、无需电池、多标签处理能力强等优点, 在物联网信息识别系统方面的应用日益广泛。
在物流及仓储等应用中,由于标签数据数量大、存放密度高,很容易引起多标签响应冲突,导致阅读器无法有效识别标签数据。为了有效解决该问题,需要在读写器的软件设计中使用多标签防冲突算法,而防冲突算法的好坏将直接影响系统对多标签数据的处理效率。
目前,UHF RFID 国际标准分为ISO18000-6A/B/C 三类, 其中,ISO18000-6C 协议应用最为广泛。本文对ISO18000-6C 协议中的标签防冲突算法进行了研究,并在此基础上做出改进,以提高 UHF RFID 读写器对多标签的识别处理能力。
1 UHF RFID多标签算法
ISO18000-6C协议中的防冲突算法采用基于时隙 Aloha 协议的防冲突算法。标签根据读写器盘点命令的参数 Q值划分时隙,可随机在某一个时隙进行数据上报,当有多个标签选择同一个时隙上报数据导致读写器无法正常解析数据时即发生冲突,为解决该现象,在读写器端使用多标签防冲突算法。目前,读写器端主流的防冲突算法主要包括固定时隙算法和动态时隙调节算法。
1.1 固定时隙算法
固定时隙算法处理标签的原理相对比较简单,大致分为以下几个步骤:
(1) 读写器根据事先人为设置的标签数量 N计算出参数Q 值,一般需满足条件 :2Q≤ N<2Q+1,通过 Q 值计算得到标签需划分的时隙数 Slots=2Q,然后将Slots 值通过Query 命令下发至标签;
(2) 标签在收到 Query命令中的 Slots参数后, 从 [0, 2Q- 1] 中随机选择一个整数载入其时隙计数器 SC,如果SC 中的时隙数为 0,则标签立即产生一个随机数 RN16 返回应答;
(3) 读写器正确解析标签返回的RN16后,向标签发出包含该RN16值的确认应答ACK;
(4) 标签收到ACK后返回包含标签 EPC数据在内的应答帧;
(5) 读写器收到标签返回的数据帧后发送 QueryRep命令通知该标签改变识别标志位不再参与识别过程,其他标签的时隙计数器 SC中的数值减 1;
(6) 当有标签的时隙计数器 SC数据为 0时,返回应答RN16,并重复(3)的操作;
(7) 读写器根据标签识别情况或者预设时间参数判断是否结束标签识别过程。
1.2 动态时隙调节算法
固定时隙算法在事先预知标签数量并且标签数量不变的情况下可取得较好的效果,但在使用过程中,较多场合事先无法准确获悉标签数量或某些场合的标签数量一直处于动态变化中,因此需要在识别过程中大致估算实时标签数量并动态调节时隙参数,从而保证读写器可快速有效地识别标签。
目前,动态时隙调节算法的主要思路是在固定时隙算法的基础上记录标签的应答与冲突情况,并结合此时的参数 Q 值与调节的门限阈值进行对比,当计算结果大于阈值时,对当前 Q 值进行调整并通知标签根据新的时隙进行识别。具体过程如下:
(2)当 T<Slots/(2X)时,表明时隙数量相对于当前的标 签数量过大,需减小 Q 值 ;
(3)当 T>Slots/X 时,表明时隙数量相对于当前的标签 数量过小,需增大 Q 值 ;
(4)当 Slots/(2X)≤ T ≤ Slots/X 时,表明时隙数量相对 于当前的标签数量处于合理区间内,无需调节。
(5)根据上述步骤的判断结果及 Q 值调整下一轮 Query 命令参数中的时隙数量。
1.3 动态时隙算法的优化
动态时隙算法在标签数量未知及数量不固定的场合下能够根据标签数量动态调节时隙数量,减少标签识别冲突,提高标签识别效率。从实际应用情况来看,该算法还存在一些问题,主要原因在于在一些标签识别冲突严重的场合,算法对标签量的估值存在较大偏差,导致算法判断错误,因此时隙数与实际标签量存在较大差异,虽然可通过多轮识别收集标签量来接近真实的标签情况,但该方法识别效率低下,且不适用标签量动态变化较快的情况。
本文提出了一种基于动态时隙算法的优化算法,通过读写器收集识别过程中各阶段的状态值,形成多层判断条件, 通过各状态值的变化情况综合判断当前时隙数量与标签量是否相符,调整 Q 值,从而在短时间内迅速提高多标签处理能力。
通过实验测试在一定量标签时如何选取 Q 值时隙数。设置三组标签场景,使其标签量分别为100,300,500,记录每组实验在不同 Q值下 30s内读到的标签数量,为避免实验误差, 每个 Q值测试 10次,最后取平均值。经统计分析可知,当 Q 值对应的时隙数约等于当前标签量(即 N≈ Slots)时,读写器的多标签处理能力最佳,同等时间内读取的标签量最多。
在此基础上进一步分析,记录每组标签单化过程中的状态值,包括无应答时隙数 S1,有应答时隙数 S2 与标签成功识别数 S3,建立公式 Ns=aS1+bS2+cS3。将多次统计记录数据代入公式,其中 Ns 为每次实验的标签总数,据此计算求出 a,b,c 三个系数均值。
修改之前的 Q 值调整算法,过程如下:
(1)收集上一轮识别过程中的状态值 S1,S2 和 S3,根据 公式 Ns=a×S1+b×S2+c×S3 求出当前标签预估量 Ns。
(2)将 Ns 与当前 Q 值对应的 Slots 值进行比较,将调整 阈值 X 设为 0.8,根据测试情况进行调整。
(3)当 Ns>2X×Slots 时,认为当前 Q 值过小,需增加 Q 值。
(4)当 Ns<X×Slots 时,认为当前 Q 值过大,需减小 Q 值。
(5)当 X×Slots ≤ Ns ≤ 2X×Slots 时,表明时隙数量相对 于当前的标签数量处于合理区间内,无需调整。
2 结 语
本文对基于 ISO/IEC18000-6C 协议的标签单化过程进行 了分析,对当前的多标签固定时隙算法与动态时隙调整算法进 行了研究讨论,并在此基础上进行标签分组测试,统计了大 量测试数据,记录后提出了新的多标签处理算法,已通过实 验测试对算法进行了验证。实验结果表明,相对于以前的多 标签处理算法,新算法可较为准确地预估当前标签量,并在 此基础上对 Q 值进行动态分析调整,提高了标签的识别效率, 减少了同等标签量情况下标签的识别时间,对解决 RFID 系统 中经常遇到的大量标签防碰撞问题具有一定的参考价值。