基于FPGA的超高频读写器设计
2.2 读写器命令
在AS3990芯片内部,已经集成了一些常用到的命令:软件初始化命令(83)、FIFO寄存器复位命令(8F)、带CRC校验的发送命令(90)、Qu-ery命令(98)、QueryRep命令(99)等,在需要使用这些命令时,只要直接调用这些命令码即可。而其他一些没有集成到芯片内部的命令就需要用软件来实现,包括选择命令Select,还有一些读命令Read、写命令Write等。
对于没有集成在芯片内部的命令,就需要用软件来完成其命令格式,不过校验码的产生、命令前导码、命令的编码都在芯片内部完成。图3所示为Select命令的软件发送格式。首先是起始条件(FF),然后是FIFO寄存器复位命令(8F),带CRC校验的发送命令(90);再是命令格式,要发送的数据长度,最后是数据。当数据从微控制器发送给AS3990芯片以后,首先将要发送的数据存入内部FIFO寄存器,加上CRC校验码、前导码,然后将数据经过编码,以数据帧的格式经过调制后发送出去。
对于集成在芯片内部的命令,只要发送命令码,芯片会自动将命令以数据帧的格式经过调制后发送出去。如图4为Query的命令发送格式。
只有芯片的工作模式设置为常规数据模式时,才能使用芯片内部集成命令。在直接数据模式下,所有的命令格式都由控制器完成。
2.3 读写器的防冲突
RFID系统中,多标签引起的冲突是影响系统效率的难题,传统的概率性防冲突算法采用的是帧时隙Aloha算法或动态帧时隙Aloha算法等。但这些算法都存在系统识别效率不高等问题。当标签数远大于帧时隙数时,发生碰撞的时隙数增多,读写器不能完成标签的读取:当标签数远小于帧时隙数时,空闲时隙增多而导致时隙浪费,这些都是导致系统效率不高的根本原因。鉴于以上的弊端,本文提出了一种基于帧时隙Aloha的改进型算法,核心思想是将标签识别分为两个步骤,即冲突检测和数据读取。其中冲突检测是为了检测一个识别周期中的标签发生冲突的情况。数据读取是根据冲突检测的情况,允许无冲突的标签和阅读器完成通信。
通常,在帧时隙Aloha算法中,当系统标签数量变得很大时,系统效率就开始下降。当读写器设置帧的长度(包含的时隙数)为Nt,响应的标签数为n时,则有r个标签选择同一个应答时隙的概率服从二项分布:
因此,当r=1时表示标签选择无碰时隙的概率。在一个周期中预期成功读取的标签数
系统效率的计算公式如下:
系统效率=一个周期中预期读取的标签数/当前的帧的长度=N/N,
从上式中可以计算出系统效率的最大值的位置。从而可以推导出,当帧的长度为Nt时,效率最高的标签响应数为:
从上式可以得出,当标签数和帧时隙长度大体相当时,系统效率将变得最大。与图5所示一致。
为使系统效率最高,必须使帧时隙数等于参与循环的标签数。每帧时隙数可以根据标签数的变化及时调整,使得标签数量与帧时隙数匹配。在开始一个新的循环时,读写器要对参与循环的标签数进行估计,如果所估计的标签数与实际情况相差甚远,那么算法的效率就会发生大幅的下降。通过对上一个周期通信所获取的空的时隙数、发生碰撞的时隙数和只有一个标签传输数据的时隙数来估计标签的数量,由估计的标签的数量来及时调整下一帧的长度。由于当外围标签数量与帧时隙数偏离较大时,系统效率会急剧下降,所以通过帧时隙改进型算法能够把系统的效率控制在34.6%~36.8%范围内,从而大幅提高了系统的识别效率。在实际的RFID系统中,被正确识别的标签将不再响应读写器发送的数据传输请求,同样,成功传输数据的标签也不再响应读写器的请求。因此前一帧中没有被识别的标签数为N=2.93c。其中c表示发生碰撞的时隙数。通过对未识别的标签数进行估计,选择最佳的帧时隙长度,从而使每个循环周期中响应标签数与帧时隙数相匹配,从而大幅度提高了系统的效率。
3 总结
本文选用FPGA芯片与AS3990射频收发芯片设计并实现了远距离UHF RFID读写器,标签识别距离达到3~4m,已基本满足应用要求。并提出了一种帧时隙Aloha防碰撞的改进型算法。通过动态地调整帧时隙数与外围标签数相匹配,使读写器系统的读取效率维持在34.6%~36.8%范围内,大幅度提高了系统的读取效率。
- 直接变频接收机设计可实现多标准/多频带运行(10-11)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 无线通信网络设计与现场测试(10-10)
- WiMAX数据传输加密方案设计与实现(05-25)
- 高性能TD-SCDMA接收机的设计(03-15)
- 初步设计WiMAX射频系统(03-29)