基于ISO18000-6C协议标准的RFID阅读器设计
2012-07-03吴小龙张红雨
吴小龙,张红雨
(电子科技大学 电子工程学院,四川 成都611731)
射频识别 RFID(Radio Frequency Identification)技术是一种新兴的非接触式自动识别技术,在工业自动化、商业自动化、物流管理、防伪以及军事等众多领域都有广泛的应用前景。其中UHF RFID成为目前最受关注的RFID应用方向,依据的协议标准是ISO18000-6C。
国内从事RFID技术研究的厂商并不多,在UHF频段的研发就更少,其技术普遍不成熟。因此研究UHF RFID阅读器是业界迫切的需要。
1 阅读器工作原理
RFID系统如图1所示,阅读器与后台应用程序连接的情况下,读取和写入等命令均由后台应用程序发出,若没有连接后台应用程序,命令则由阅读器自身发出。阅读器采用PIE编码向标签发送命令,调制方式采用双边带振幅移位键控(DSB-ASK)[1],调制深度 90%以上;标签采用FM0或Miller编码向阅读器反射应答信息,调制方式为反向散射ASK调制,调制深度10%左右。其基本工作流程如下:
(1)阅读器向标签发送一段时间的空载波,使得标签有足够的能量上电复位,计算存储区的CRC16。
(2)阅读器发送盘存命令,开启一次标签的读写过程,接着发送一系列命令完成标签的识别。
(3)阅读器解析标签回送的数据,经过串口传送给后台应用程序。
2 阅读器总体设计及实现
阅读器总体上分为3个模块:数字基带模块、后台应用程序接口模块和射频发射接收模块。系统总体结构图如图2所示。
数字基带模块中的FPGA芯片主要负责Miller解码和PIE编码,解码后得到的数据传到ARM做进一步分析。PIE编码则通过引脚输出到功率放大器芯片的开关引脚,控制芯片的开或关,从而实现ASK调制。ARM主要负责ISO18000-6C协议的实现以及各种命令参数的设置等。
后台应用程序接口为串口,将ARM得到的标签信息传入PC机相应的程序中,以备后续的应用。并且接收应用程序发出的RFID标准命令(此时可以不用ARM来产生命令)。
发射电路由915 MHz载波发生芯片、线性放大器芯片和功率放大器芯片构成。接收电路由四路包络解调电路、差分放大器和电压比较器构成。定向耦合器负责收发电路之间的隔离,提高接收机的接收灵敏度。
3 阅读器硬件系统设计
3.1 射频前端电路设计
射频发射电路包含载波发生电路、线性放大电路和功率放大电路。采用专用芯片SI4133产生915 MHz载波,误差10%左右。载波经过线性放大器放大,使其信号的幅度在功率放大器正常放大范围内,以避免信号失真。功率放大器采用RF2173芯片实现,由于功率放大电路需要比较大的电流,所以在 PCB设计时[2],这部分需要单独供电,并且布局应在板子的边沿,使其芯片能够很好地散热。最后是微带线的设计[3],微带线设计采用ADS仿真实现,主要完成天线的阻抗匹配。
接收电路采用零中频接收机方案[4],只需要一级同频混频器就可以得到基带信号,结构简单。但由于收发电路均采用同一根天线,发射电路的信号会泄漏到接收电路中,由于发射电路的信号强度强于接收电路的信号,如果不加入定向耦合器进行收发隔离,会降低接收机的接收灵敏度。不同于传统方案中的两路I/O包络解调,这里采用4路包络检波电路[5],可以解决接收模糊点问题。检波后的信号幅值十分微弱(10 mV左右),需要经过如图3所示的差分放大器进行放大。差分放大后得到的两路信号进入电压比较器后可得到Miller编码波形。
3.2 基带电路设计
基带电路主要由FPGA和ARM构成。FPGA为Altera公司的EP1C3T100C6,利用FPGA编解码速度快的优点,可以很好地分担ARM处理器的压力,使得ARM可以专注于协议控制。ARM芯片为飞利浦公司的LPC2148,主要负责协议栈的实现以及与后台应用程序之间的通信。ARM与FPGA连接图如图4所示,其中:数据连接的引脚为DATA0~DATA15;ERROR引脚用于说明解码过程中发现错误,通知ARM处理器丢弃之前接收到的数据;DATA_END表明数据读取完毕;EMPTY表明信号无效期间,ARM会不间断地发送READ命令读取数据。
3.3 后台应用程序接口电路
后台应用程序接口电路如图5所示,主要由USB转串口芯片构成。该电路将标签的特征信息如EPC、TID、USER等上传到PC机的上位机程序中以备后续的应用。
4 阅读器软件设计
4.1 ARM程序设计
ARM程序设计流程如图6所示,主要完成ISO18000-6C协议的实现。阅读器首先给标签发送一段时间的空载波,标签将载波能量转换为电能,完成自身的复位;然后阅读器给标签发送Query命令开启一次盘存,标签在协议规定的时间内回送16 bit伪随机数(RN16);阅读器收到RN16后,将它作为ACK命令的一部分发给标签;标签收到ACK命令后,首先对其进行CRC16校验,之后检查RN16是否匹配,如果都满足则发送自身特征信息EPC给阅读器;阅读器将收到的EPC信息通过串口发给上位机;如果需要对标签进行读或写访问,则发送Req_RN命令获得标签的句柄,该句柄不仅用于读写命令,一些可选命令(如:Kill、Access、Lock 等)也都需要它。如果还有数据传送,则再次使能串口发送,否则重新发Query命令,开启新的盘存过程。
4.2 FPGA程序设计
FPGA程序总体上分为PIE编码模块和Miller解码模块,程序编译环境为QuartusⅡ9.0。
PIE编码模块接收ARM传入的命令数据后,首先根据具体命令生成不同的帧头,因为Query命令的帧头不同于其他命令;然后编码命令数据。由于PIE编码中数据0和数据1在编码上表现为波形长度的不同,所以只需用计数器驱动引脚在不同的时间输出高低电平即可完成编码。图7所示的波形为QuartusⅡ9.0内嵌的逻辑分析仪SignalTap采集FPGA器件产生的PIE编码波形。可以看出阅读器发出Query命令后,收到了标签RN16的Miller码波形。
Miller调制副载波技术中,当 M=2、4、8时,用 Miller编码基带波形去调制副载波序列,这里采用M=2的编码规则。Miller编码规则为:(1)每个符号含有M个副载波周期;(2)符号‘0’期间不发生相位翻转;(3)符号‘1’中间处发生相位翻转;(4)只有在相邻符号都为‘0’时,符号分界处才发生相位翻转。另外,在每一帧电子标签返回读写器的数据前都有帧前导序列。解码器主要完成帧前导序列检测和数据解码。前导序列检测到16个‘0’+‘010111’后开始储存实际数据,如果帧头有误或者在解码过程中发现数据违反编码规则,则给ARM连接引脚“ERROR”传一个高电平。Miller解码波形如图8所示。
5 测试结果
阅读器连接计算机的后台应用程序即可读写标签,测试结果如图9所示,阅读器频谱如图10所示。
根据 IS018000-6C标准,采用 LPC2148、EP1C3T100C6以及射频相关芯片,完成了阅读器的设计。该阅读器经测试工作正常,既可以单独工作也可以在PC的控制下工作,使用方便。
[1]International Standards Organization of International Electrotechnical Commission.ISO/IEC l8000,information technologyradio frequency identification for item management-Part 6:parameters for air interface communicaitions at 860 MHz to 960 MHz,amendment l:extension with Ty,pe C and update of types A and B[S].Geneva:ISO,2006.
[2]李勇明,曾孝平.高频PCB设计过程中的电源噪声的分析及对策[J].重庆大学学报,2004,27(7):72-74.
[3]武岳山.阻抗匹配的种类及其在RFID系统中的应用研究[J].现代电子技术,2008,20:21-23.
[4]Chang Kai.RF and microwave wireless systems[M].John Wiley&Sons,Inc,2000.
[5]LANDT J A,ALAMOS L,MEX N.Multichannel homodyne receiver[M].The United States of America as represented by the United States Department of Energy,Washington,D.C.Jan.19,1981.