一种UHF读写器的设计与实现
2019-01-10李维锋王雪亮
李维锋,王雪亮
(杭州电子科技大学新型电子器件与应用研究所,浙江 杭州310018)
0 引言
RFID(Radio Frequency Identification)是一种非接触式识别技术,通过电磁耦合的方式实现能量转换与信息交换[1]。随着物联网时代的来临,全球信息化产业被提升到一个新的高度,RFID由于超长的寿命、读写可靠、良好的耐环境性、工作过程节省人力等优势,被广泛用于物流管理、目标监测追踪、电子支付、交通运输、医疗行业等领域。目前的RFID读写器大多由集成元件组成,设计成本较高,体积大,不适合在更多领域推广[2]。同高频RFID系统相比,UHF(Ultra High Frequency)读写器识别距离更远,抗干扰能力更强,防冲撞性能更好,适用范围日益增大[3~7]。
本文采用分立元件搭建UHF读写器,设计实现了一种基于ISO/IEC 18000-6C协议标准的低成本、高性能UHF读写器系统。
1 读写器硬件的功能与设计
读写器硬件电路主要包括MCU控制电路和射频前端电路。读写器对电子标签的读写操作主要由射频模块完成,射频模块包括射频发送模块和射频接收模块。射频发射电路对发射的信号进行调制,将信息传输到电子标签;射频接收模块接收并解调电子标签反馈的射频信号。MCU控制电路主要功能是执行主机发送的命令,控制射频模块与标签进行通信,加密和解密传输数据。读写器硬件电路结构如图1所示。
图1 读写器电路结构图
1.1 射频发送模块
射频发送模块主要包括载波电路、调制电路、功率放大电路,MCU输出的符号数据先后经过基带编码、调制滤波和信号放大。设计采用ASK信号调制,利用晶体振荡器为系统提供915~920MHz频率范围内稳定的载波信号,信号调制后,通过高增益的微波功率放大模块实现系统的功率放大。整个系统采用单天线进行信号的发射和接收,因此采用RCP890A05定向耦合器,避免发射机信号泄漏到隔离段,实现单天线的收发隔离。射频发射模块电路如图2所示。
图2 射频发射模块部分电路
1.2 射频接收模块
接收模块电路采用I/Q正交零中频结构消除接收过程中因距离的变化而出现的接收盲区,电路结构如图3所示。天线接收到的信号被分为I、Q两路信号,本振信号通过移相产生相差90°的两路信号,分别经过混频器变频,输出的信号经过滤波得到的低频信号即标签返回的信息。
图3 I/Q正交零中频结构
通道Q的信号与接收信号混频后滤波:
通道I和本振信号相乘后为cos函数,是一个余弦信号,而Q是正弦信号,两者相位差为90°,所以I/Q两路的零点是交替的。一个通道输出为零时,另一个通道的输出最大,两者输出之和是常数,克服了传统零中频接收机的零点效应。
2 读写器软件设计
系统使用分立元件搭建而成,因此采用软件设计实现数据信息的编码和通信协议的处理,这种方案降低了读写器的设计成本和复杂度。系统的软件模块主要包括主控程序设计和多标签读写时的防冲撞程序设计。
2.1 主控程序设计
主控程序的任务是循环自检,当收到主机发送的命令时会发送中断标志并处理主机命令,包括对标签的读写、锁定、销毁等命令。如果收到读取命令,当标签进入读写器读写范围时,解码模块对标签信号进行解码,然后传输到系统处理模块进行数据处理;若同时读取到多标签,则进入防碰撞处理过程;若读取失败,则返回主程序并等待下个指令。主机可对标签进行锁定,实现对标签所有区的写保护,防止标签数据被篡改。收到销毁命令时,会销毁电子标签中的信息,并且该过程不可逆转,标签的数据也无法追回。
2.2 防冲撞算法设计
软件设计中,高效的多标签识别是整个系统的关键点。目前流行的RFID防冲撞算法主要有基于ALOHA的不确定性算法和基于树型的确定性算法两类[8~10]。基于ALOHA防冲撞算法主要有帧时隙ALOHA算法、纯ALOHA算法、时隙ALOHA算法、动态帧时隙ALOHA和它们的优化版本[11~13]。树型防冲撞算法主要包括QT(Query Tree)算法、TS(Tree splitting) 算法、BS (Binary Search) 算法和BTA(Bitwise Arbitration)算法[14~16]。在 QT 算法中,四叉树算法的缺点是分叉时会产生额外的空闲时隙,这是影响该算法的主要原因。通过剪枝操作对该算法进行优化,过滤掉不必要的空闲时隙,增大吞吐率,提高读写器识别速率。剪枝的原则:
(1)最高碰撞位之后还是碰撞位,不剪枝;
(2)最高碰撞位之后是0,减去分支01和11;
(3)最高碰撞位之后是1,减去分支00和10。
算法使用堆栈数据结构保存读写器查询前缀,初始化时将空字符串放入堆栈中。读写器从堆栈中取出查询前缀,如果标签的ID号前缀与之匹配,标签将ID号中剩余信息反馈给读写器。当多标签前缀相同发生碰撞时,读写器根据规定的剪枝原则更新查询前缀,并放入堆栈中。读写器不停地读取堆栈中的查询前缀,直至所有的标签被识别。算法执行步骤如下:
(1)初始化,堆栈中放入空字符串。
(2)判断堆栈是否为空,如果是,算法结束。
(3)读写器读取堆栈中保存的查询前缀,发送给标签,标签将收到的信息与自己ID匹配。匹配成功,则发送剩余信息,反之,标签不响应。
(4)如果读写器只接收到一个响应,跳到步骤6;如果没有收到响应,跳到步骤7;如果接收到多个响应,根据碰撞原则更新查询前缀。
(5)重复步骤 2~4。
(6)识别标签。
(7)结束。
四叉树的节点数包括中间节点(此时将根节点算作中间节点)和叶节点:
n4表示度为4的节点,n0表示节点度为0,节点的度表示该节点拥有的自节点个数,加上根节点,所以总时隙也可以表示为:
因此:n0=3n4+1n4=(n0-1)/3
假定标签数量为n,不满足剪枝条件时,并且碰撞时没有产生时隙时,叶节点数n0=n。
由于n4=(n0-1)/3,此时算法总时隙是:
产生两个空闲时隙时,空闲节点m=2n4,此时算法总时隙为:
满足剪枝条件时,叶节点和标签数相等,此时中间节点的子节点只有满四叉树时的一半,算法总时隙是:
综上可知,改进后的算法总时隙的范围为[(7n-1)/6,2n-3]。
3 读写器测试
3.1 读取距离测试
读写器硬件电路正常工作之后,对读写器的标签读写能力进行测试,在天线辐射范围内,将标签靠近天线,待读写模块读取到标签后慢慢增大距离。读写器通过轮询的方式发射射频信号,通过设置轮询周期为20,可评估读写器的正确率和稳定性,测试结果如表1。在5dBi天线配合下,2m以内读取率和正确率达到100%,极限读取距离为2.5m,测试结果稳定可靠,满足实际应用需求。
表1 距离测试
3.2 吞吐率测试
吞吐率是衡量算法性能的重要指标,吞吐率越大,识别速率越快。算法的吞吐率为:
通过仿真测试之后得到如图4所示的结果,吞吐率高达0.64,满足读写器快速识别多标签的要求。
图4 吞吐率测试
4 结语
系统采用分立元件组建读写器系统,工作在915~920MHz频率范围内,读写距离2~2.5m。设计了新型的四叉树防冲撞算法,仿真和测试分析表明通过剪去四叉树中的空闲时隙,该算法显著减少了了读写器识别时间,提高了RFID系统的识别效率。虽然该读写器在性能上有所改进,达到了设计目标,但还有不足之处。多标签读取时较高的识别率和较远的读取距离限制了读取标签的数量,今后可以提高接收灵敏度,增大可识别标签的数量,还可增加读写器自组网功能。