一种RFID阅读器的列表式读取方式研究
肘频识别技术( Radio Frequency Identifica-tion,RFID)是一种非接触式的自动识别技术,在生产、生活、卫生医疗等各个领域发挥着越来越重要的作用,与传统条形码技术相比较,RFID技术具有使用寿命长、存储容量大、读取速度快、环境适应能力强、抗干扰能力强、支全性高等优点,而其最突出的特点即为多标签识别,但阅读器周围可有多个标签存在,当两个或两个以上标签同时向阅读器发送数据时将会产生数据冲突,防碰撞算法应运而生,目前解决标签碰撞的算法主要有基于二进制树搜索的确定性防碰撞算法和基于ALOHA的不确定性防碰撞算法,阅读器都需根据相应碰撞规则对其识别范围内的标签逐个读取,当标签数量增大时,该两种算法都会产生明显的系统开销及时延。传统的防碰撞思想采取标签主动方式,即符合系统规范的标签一进入阅读器的工作区域就自动向阅读器发送其自身ID,此时若多个标签同时向阅读器发送数据,将会产生冲突,阅读器需对碰撞标签数据进行防碰撞操作,但是阅读器只能依据算法中相应的运算规则来决定读取标签的先后顺序,并且防碰撞算法本身的复杂性也在很大程庋上增加了系统开销。针对防碰撞算法的不足,本文提出了列表式读取方式,这是一种新的RFID阅读器读取方式,与传统防碰撞算法不同之处在于列表式读取方式跳过了防碰撞过程,识别标签之前阅读器存储待读标签的地址信息,依照地址列表读取标签,读取的主动权在于阅读器.
1 列表式读取方式
1.1 列表式读取方式指令原理
读取操作前,阅读器内部存储器存储所有标签的唯一识别号( UID),形成待读标签地址列表,读取时阅读器按照地址列表顺序将所要识别标签的UID插入到REQUEST命令中发送出去,标签在接收到阅读器发送的REQUEST指令后,提取出命令中的UID信息与其自身UID信息进行比较,若异或运算结果为零则确定该标签为阅读器的目标标签,标签响应;否则,标签对阅读器命令不予理会.
1.2 列表式读取方式的两种读取模式
当阅读器对标签进行读取操作时,阅读器列表式读取方式采用两种模式:二次读取模式和循环读取模式,也可通过将两种模式混合使用形成嵌套读取模式.
1)二次读取模式,若阅读器存储器内部标签地址列表中待读标签数量很大,识别标签运用的算法需尽量减少识别时间.二次读取模式巧妙避免了需反复读取同一标签所产生的时延,当地址列表中的个别标签暂时未能被成功读取时,阅读器将在内存中建立1个子地址列表,将漏读的标签地址存放于萁中。
当阅读器完成对地址列表中的所有标签一轮查询后,将进行子地址列表的读取,读取操作模式如上所述,若此时仍不能成功读取子地址列表内全部标签信息,则建立下一层子地址列表,重复上述过程逐层读取.
2)循环读取模式,对于循环读取模式,如果标签地址列表中出现个别标签不能被正确识别,阅读器将不再按照地址列表顺序继续向下读取,而是对未成功识别标签反复读取直至成功识别,重复此操作至地址列表清空.
3)嵌套读取模式,嵌套读取模式是将循环读取模式嵌入到二次读取模式中,即对于二次读取模式下形成的子地址列表,阅读器采用多地址循环读取模式对其进行识别,当阅读器对地址列表中所有标签地址完成一次读取后,将未识别的地址提取出来建立子地址列表,对子地址列表阅读器将从首地址到末地址采取循环读取模式进行读取,标签成功识别后,将其地址从子地址列表中删除,反复操作直至子地址列表清空.
2 算法分析
为了证明列表式读取方式性能的优越性,本文采用Matlab仿真软件,针对阅读器寻呼次数、传输时延及系统效率3个重要性能指标对本算法进行仿真分析,并与工作方式机理基本一致的二进制搜索算法做性能比较.
2.1 阅读器寻呼次数分析
对于阅读器列表式读取方武,当需要读取地址列表中单个标签时,阅读器只需发送1个插入该标签UID的REQUEST( UID)命令即可,待识别标签响应并附带自身的UID,其他标签不作响应.
1)列表式读取方式,在阅读器列表式读取方式中,阅读器发送的寻呼命令次数与标签数目无关,寻呼次数Tln(N)应始终为1,即 Tl1(N)=1 (l)
所以当阅读器需要对自身工作区域内所有N个标签进行读取时需要的寻呼命令次数Tln(N)终为N,即 Tln(N)=N (2)
该式为阅读器读取范围内标签数目有限,且在时间允许范围内可对全部标签成功识别的情况,当标签数目很大,如对全国范围内的二代身份证进行识别,即标签数目可达十几亿时,与本结论并不冲突.
2)二进制搜索算法,对于二进制搜索算法,阅读器要识别其读写范围内N个标签中某一个标签所需发送的寻呼次数为 TB1(N)=Int(log N/log 2)+1 (3)
阅读器对该标签成功识别后,将会发送1个去活命令,标签接收到命令后进入等待状态,对于阅读器以后发来的命令不予响应,即该标签将不会参与下一轮的防碰撞操作,当阅读器需要对工作区域内的全部N个标签进行识别时,阅读器所要发送的寻呼次数应为
3)阅读器寻呼命令数仿真分析,当阅读器需要对其读取范围内全部N个标签中单个标签进行读取时,所需发送的寻呼命令次数仿真分析如图1所示。
从图可知,二进制搜索算法的阅读器寻呼次数曲线呈正增长趋势,阅读器发送的寻呼命令次数会随着标签数量的增长而增长,然而阅读器列表式读取方式的寻呼次数恒定为1,不因标签数变化而变化.
图1 识别单个标签时仿真结果对比
当阅读器需要识别其工作范围内全部N个标签时,所需发送的寻呼命令次数仿真分析如图2所示。
图2识别全部标签时仿真结果对比
由图可知,对于两种算法虽然阅读器发送寻呼命令次数都会随着标签数量增长呈现增长趋势,但二进制搜索算法的增长趋势更加显著,因此列表式读取方式优越性更为明显.
{$page$}
2.2 系统传输时延分析
对于阅读器而言,其命令数据传输时间要远大于相关命令处理时间,因此,将命令数据传输时间作为分析RFID系统传输时延的主要因素,因系统数据传输速率恒定,所以传输时延取决于阅读器发出寻呼的次数和每次发送寻呼的UID传输数据长度(以比特为单位).
对于两种算法,阅读器与标签间的请求命令和应答命令的数据帧首尾都要有1个5个比特位长度的空闲,分别命名为帧头与帧尾,而且,阅读器接收到标签回传UID的环节中,处理数据校验位要花掉1个比特时间.而当目标标签返回响应时,阅读器记录其唯一讽别号信息还需要2个比特时间,成功识别该标签后会发送1个带有该标签UID的去活命令,使其进入等待状态.
若阅读器工作范围内的标签数量为N,标签的唯一识别号( UID)长度为k比特,可知,阅读器与标签一次通信所要消耗的比特时间Lo为Lo=2k+21.
对列表式读取方式而言,当阅读器需要读取其工作区域内的单个标签时,由式(l)可知,阅读器发送寻呼命令次数为1,即系统内阅读器与标签需发送的比特长度Ll1(N)为Ll1(N)=2k +23.
当需读取全部N个标签时,由式(2)可得阅读器需要发出N次寻呼命令,即需要发送的比特长度LlN(N)为LlN(N)=N(2/c+23).
而二进制搜索算法中,当阅读器需要对其工作区域内某1个标签进行读取时,由式(3)可得,阅读器发送的寻呼命令数为Tbl(N),则所要发送的比特长度Tbl(N)为 Tbl(N)=(2k+21) Int(log N/log 2)+ 2k+23.
当需识别所有标签时,由式(4)可知,阅读器发送的寻呼命令数为Tbn (N),则所要发送的比特长度Tbn (N)为
着所传的比特位已知,系统的比特位数除以码元速率即为传输时延,设阅读器的码元速率为口= 50 kbit/s,标签UID的长度七为64 bit,标签数为N.
1)阅读器列表式读取方式,若阅读器读取范围内存在N个标签,列表式读取方式读取单个标签进行识别时的系统传输时延Tl1为Tl1=Tl1/v=(2k+23)/v
对全部标签进行读取时的系统传输时延Tln为 Tln=Lln/v=N(2k+23)/v.
2)二进制搜索算法,对于二进制搜索算法,当阅读器需要对其阅读范围内N个标签中的某一个标签进行读取时,系统传输时延Tb1为 Tb1 (N)=Lb1/v=[(2k +21)Int(logN/log 2))+2k+23 l/v.
对于二进制搜索算法,当阅读器需要对其读取范围内全部N个标签进行识别时,系统传输时延Tbn为
3)系统传输时延仿真分析,假设阅读器读取范围内存在N个标签,读取单个标签时两种算法的系统传输时延的仿真分析比较如图3所示
图3识别单个标签仿真结果对比
从图3可以看出,提出的读取方式系统传输时延为定值3 ms,即识别单个标签的传输时延与阅读器工作范围内标签数量无关,而二进制搜索算法的传输时延随着横轴标签数量的增长而增长,在标签数目为0 -10的范围内,增长幅度最为明显,以后呈平缓增长趋势.
对读取范围内全部N个标签进行识别时,两种算法的系统传输时延仿真分析比较如图4所示
图4识别全部N个标签仿真结果对比
由图4可知,无论二进制搜索算法还是阅读器列表式读取方式,其系统传输时延都会随着阅读器读取范围内标签数量的增加而有所增加,但显然列表式读取方式较二进制搜索算法上升幅度迟缓,在标签数目为150个时,列表式读取方式系统传输时延为500 ms,而二进制搜索算法达到2 000 ms,时延为列表式的4倍,可见标签数量增大时,阅读器列表式读取方式优势性更为明显.
2.3 系统效率分析
由阅读器发送寻呼命令次数的仿真图可知,阅读器发送寻呼命令的次数会随其读取范围内标签数量的增长而增长,即阅读器成功识剔标签效率下降.列表式读取方式与二进制搜索算法的系统效率分析比较如下.
1)列表式读取方式.对于列表式读取方式,阅读器要对其读取范围内N个标签中的某一个进行识别时,系统效率El1可以表示为
当需识别全部N个标签时,列表式读取方式的系统效率Eln为
2)二进制搜索算法,若阅读器读取范围内存在N个标签,当需识别单个标签时,二进制搜索算法系统效率Eb1,可以表示为
当需识别其读取范围内的全部N个标签时,二进制搜索算法的系统效率Ebn为
3)系统效率仿真分析,若阅读器工作区域内标签数目为N个,当阅读器需要对其中某一个进行读取时,系统效率的仿真如图5所示.
图5识别单个标签仿真结果对比
由图5可知,识别阅读器读取范围内单个标签时二进制搜索算法的系统效率呈现整体下降趋势,标签数量在0 - 10范围内,系统效率直线下降,随着标签数量逐渐增多,下降幅度将有所缓解,但仍一直呈下降趋势,而对于列表式读取方式,系统效率始终为100%.
当阅读器需要识别所有标签时,系统的效率仿真分析如图6所示,从图可知,二进制搜索算法的系统效率与标签数目成负相关,即标签数量上升,系统效率随之下降,而列表式读取方式的系统效率恒定为100%.因此,系统效率方面列表式读取方式优于二进制搜索算法
图6识别全部N个标签仿真结果对比
3 结 论
列表式读取方式省去了传统防碰撞算法中复杂的防碰撞过程,利用二次读取方式、循环读取方式或嵌套读取方式对标签进行识别,通过仿真实验分析得出本算法在阅读器寻呼次数、系统传输时延以及系统效率3个重要的性能指标上都明显优于二进制搜索算法,尤其是在图书馆开放式书架管理以及仓储管理等需查询某一特定标签的特殊应用环境下凸显其灵活便捷性.但对于阅读器列表式读取方式,一方面因其跳过防碰撞算法,不能灵活应对阅读器读取范围内多个标签同时与阅读器通信的状况;另一方面因其识别主动权不在标签,而在阅读器,只有地址信息存放于阅读器内部存储器的标签才能被识别,所以相应的
其应用范围也将受到一定的限制,因此列表式读取方式并不能完全地取代传统的读取方式,在实际中应该将两种不同思想的读取方式结合起来,使应用更加灵活高效。