文献标识码:A
文章编号: 0258-7998(2012)10-0019-04
与IC卡识别和条形码识别技术相比,RFID技术具有无接触、信息存储量大、读取速度快、不易受到污染、可同时识别多个目标等优点,特别适合对数量大、分布区域广的信息进行智能化管理和高效快捷地运作[1]。目前RFID技术按频率可分为低频系统(125 kHz和134 kHz)、高频系统(13.56 MHz和27.125 MHz)、超高频系统(860 MHz~960 MHz)和微波系统(2.45 GHz和5.8 GHz)。然而,现阶段我国70%的RFID市场应用还主要集中在高频领域,如身份证、电子门票、公交卡等,超高频的市场应用比重还不足10%。超高频RFID系统与高频RFID相比具有通信距离远、响应速度快、抗干扰能力强等优点,已成为目前RFID产业研究的热点。
1 系统硬件设计
1.1 AS3992简介
AS3992芯片是奥地利微系统公司研制的一款支持ISO18000-6C/6B协议的900 MHz RFID读写器专用集成芯片。内部集成了发送电路、接收电路和EPC Gen2协议处理模块[2],发射模块包括增益放大器(VGA)、功率放大器(PA)、锁相环(PLL)、压控振荡器(VCO)、频率合成器、调制器、数/模转换器(DAC)等模块。接收模块包括低噪声放大器(LNA)、混频器(Mixer)、中频放大器、解调器、模/数转换器(ADC)等模块。内部功放的输出功率可以高达20 dBm,片上VCO和PLL可产生840 MHz~960 MHz的振荡频率,其接收灵敏度可达-86 dBm,从而使芯片外围电路大大简化。收发模块还可以自动生成报头帧和CRC校验,生成帧的数据块通过片上的24 B FIFO寄存器传输到MCU[3]。AS3992通过软件设置可以在待机模式、休眠模式和收发模式三种工作模式间切换,大大降低了功耗。当系统工作于收发模式时,读写器功耗仅为1.2~1.5 W,远低于目前主流2.5 W的UHF射频芯片Intel R1000。
1.2 硬件结构
系统硬件结构如图1所示。
AS3992与MCU通信方式有两种:(1)并行方式,包括8 bit数据、时钟CLK以及中断信号IRQ;(2)串行方式,包括标准SPI接口以及中断信号IRQ。本设计采用并行操作,可支持EPC数据链路640 Kb/s的最快速率[4]。
MCU选用ARM Cortex-M3处理器LM3S8962,其内核基于哈佛结构,指令和数据可以从存储器中同时读取,对多个操作可以并行执行,程序运行速度很高,具有更低延迟的中断,表现了出色快速的中断响应,而且还同时具有两种睡眠模式,更加节省了功耗;利用Max3232和ADM3485芯片分别实现RS232和RS485串口通信;同时系统还设有RJ45以太网接口,可以直接将读写器与网络相连;复位信号由Max809芯片提供,用于监控微控制器和其他逻辑系统的电源电压;通过11个I/O口连接AS3992芯片的IO0~IO7、EN、CLK和IRQ管脚,实现芯片间并行通信;利用I/O口设有读卡LED灯指示和蜂鸣器读卡声音指示。
射频前端模块首先对发射信号进行编码、载波调制后,由RFOPX和RFONX两引脚差分输出,经Balun变换输入射频功率放大器PA,然后通过定向耦合器和环形器经RF1450开关由天线发送给电子标签;接收来自电子标签的射频信号,提取有用信号通过Balun变换后输送到AS3992的输入端MIX-INP和MIX-INN,由AS3992进行混频、增益、滤波、模/数转换后得到数字信号,再送给MCU处理。
1.3 射频前端电路设计
AS3992虽然集成了内部功率放大器,输出功率可以达到20 dBm,但一般情况下在空旷静止的环境中识别距离也就在2 m左右。因此,为了支持更远的读写距离,设计中将AS3992芯片设置为最大0 dBm功率的高线性输出,利用外部功率放大器,外加匹配电路、滤波、隔离等实现射频信号的发射。
设计中采用了差分输入、输出方式,信号在返回路径中对抗串扰和突变的鲁棒性好,抗干扰能力强,能有效抑制外界电磁干扰。AS3992的RFONX和RFOPX引脚差分输出为0 dBm。通过LC匹配网络,不仅可以起到滤波的作用,还可以引入新的反射,抵消由于负载不匹配产生的反射,从而达到改善驻波比和宽频带响应、获得最小噪声系数和最大功率传输的目的[5]。由于在输出端,两端对地都有电压且大小相等、方向相反,阻抗为100 Ω,而终端为50 Ω的同轴电缆,为非平衡的,因此,需要利用Balun射频变压器来实现平衡和非平衡的变换。
功率放大部分采用RF5110芯片,该芯片可工作于800 MHz~950 MHz之间,能够满足超高频领域的所有频段,且输出功率具有可控性。APC1和APC2端为功率控制输入端,连接至AS3992芯片的DAC端,DAC输出电压在0 V~3.2 V之间,可以通过设置DAC控制寄存器调节电压大小。RF5110外围电路设计可以参考RF5110数据手册。图2给出了RF5110在915 MHz频率工作时,输入端的输入功率不同时对应的最终输出功率的大小。
由图2可知,AS3992输出0 dBm时,在不考虑插入损耗的情况下,RF5110放大后输出功率大约为30.6 dBm;去掉后边低通滤波器、定向耦合器等的插入损耗,最终天线的发射功率还不足1 W(对应30 dBm)。为了达到RF5110最佳的放大输出,设计中引入前置增益放大器HMC580ST89,在0.5 MHz~1.0 GHz范围内可获得17 dB增益,输出三阶截点IP3高达33 dBm,具有良好的线性度和更少的失真。通过HMC580ST89放大后获得Pin端功率为7 dBm,在Vapc=2.7 V、Vcc=3.3 V条件下,RF5110输出功率可达到34.5 dBm,转换效率为54.8%。
功率检测电路如图3所示,采用ADL5501芯片来防止因天线不匹配或定向耦合器(或环形器)的信号泄漏造成发射信号被反射进入AS3992芯片中的混频器,导致发射信号噪声被调制,增加接收波噪声和误码率,甚至会造成混频器输入端的过载饱和。ADL5501的输入引脚接定向耦合器的耦合端,通过输入端的两个电阻配置衰减参数,防止功率过大烧毁芯片。AS3992根据反射功率的大小可以通过DAC控制发射功率。
通过四天线端口设计,并将多个天线在空间上排成适当阵列形式,可以保证读写器的4个天线对指定读写区域进行全方位的覆盖。设计中采用插入损耗仅为0.4 dBm的单刀四掷射频开关RF1450,通过MCU的2个GPIO控制天线选择。
2 系统软件设计
读写器在识别和读写电子标签时,要求有比较高的识别速度和读写速度,尤其是读写器在识别电子标签时,首先要在6B和6C两个工作协议间进行自适应识别与切换,这对处理器软件的运行效率和处理速度提出了较高的要求。MCU对AS3992的操作主要是修改内部的寄存器,32个寄存器访问也给软件设计带来了一定的复杂性。而且软件还担负了编码和解码等通信协议的实现,能够实时地让用户通过应用软件对系统发送指令和数据。经综合考虑,有必要在ARM控制器中引入μC/OS-Ⅱ系统来担负系统任务的调度和系统资源的管理,这样不仅可以使软件的开发更加方便高效,还可以提高系统的可靠性,充分发挥控制器的处理能力。
μC/OS-Ⅱ是一种简单高效、源代码公开、支持多任务和抢占式内核、具有良好的可裁剪性的嵌入式实时操作系统。由于周立功单片机公司已经提供了基于群星Cortex-M3的μCOS-II移植模板,只需要更改代码中相应的硬件底层驱动即可,工作较为简单,本文不再对该移植内容进行分析。
2.1 主程序
主程序的控制流程图如图5所示。系统上电后进行初始化(主要进行定时器、串口初始化)、使能中断、设置并行通信方式、设置工作频率、通信协议初始化等。UART串口初始化后等待系统命令,若主机发送的命令数据包有效就会唤醒CPU工作并发送设备ID号给PC机。通过轮询发送6B和6C协议判定命令,实现自适应自动识别并切换到相应协议处理模式下工作。
2.2 6C协议处理
通过设置AS3992内部的协议控制寄存器(01)可以实现Gen2协议和6B协议。设置Port<1:0>为“00”实现Gen 2协议,“10”实现6B协议。进入6C协议模式下,首先要初始化AS3992,以设置各寄存器的值,例如状态控制寄存器设置为0x02,协议控制寄存器设为0x06,发射控制寄存器设为0xF0,接收控制寄存器设为0x60等。防碰撞算法采用Epc标准规定的时隙ALOHA算法,初始化后发送select命令选择一批标签后,盘存Querystandard(q)函数产生随机数q,然后发送query命令,等待标签响应,执行ReadRN()函数读取标签响应,通过ACK()和QueryRep()命令槽计数器减值并进行识别,正确识别唯一标签后将标签序列号计入到存储器中。识别过程中根据读标签的返回情况由QueryAdjust()命令调整q值。识别成功后发送Access()和ReqRN()命令进行密码高低位的验证,验证成功后才可以对标签操作。具体流程图如图6所示。
2.3 6B协议处理
在状态控制寄存器中,经“Direct”位置为“1”即可计入直接模式。直接模式下只会用到4个IO口(IO2、IO3、IO5、IO6)。其中IO3用于数字调制输入,IO2用于RX使能输入,IO5和IO6输出副载波[6]。
直接模式分为两种:当协议控制寄存器(01)中的dir_mode为“1”时,输出未经解码的副载波数据流;当dir_mode为“0”时,输出由ISO18000-6C协议处理器中功能相同的FM0解码器进行解码之后的数据流[3]。直接模式下采用基于曼彻斯特编码的动态二进制搜索算法,以及CRC-16校验方式,设置链路频率为40 kHz。发送指令后要退出直接模式,在普通模式下接收数据,才能使用内置解码器来输出数据流。CRC校验错误时,检测发生错误的最高冲突位X,并将其置为0,然后重新传送(N-X)位后即中断传输,标签比对N-X位并返回响应数据。CRC校验若无错,计数器cnt减1、found加1;若有错误,则再将最高冲突位置0后重新发送命令,直至最后搜索范围内标签数cnt=0结束。具体流程图如图7所示。
本文设计了一款基于AS3992和LM3S8962单片机的ISO18000-6B和6C双协议自适应超高频读写器,并给出了软、硬件的设计方案。读写器可以实现四通道天线连接,增加了标签的读取范围,发射功率可达到32 dBm,读取距离可达7 m。本系统开发周期短、功耗低、识别距离远,具有广阔的应用前景。
参考文献
[1] 黄玉兰.物联网射频识别(RFID)核心技术详解[M].北京:人民邮电出版社,2010.
[2] 谭海燕,崔如春,肖志良,等.基于AS3990/AS3991的超高频RFID读写器的设计[J].电子技术应用,2010,36(3):54-56.
[3] 唐焯宜.基于AS3991的超高频RFID读写器设计[D].广州:中山大学,2010.
[4] 汪大卓,孙玲玲,蔡鹏鹏.一种便携式超高频RFID读写器的设计[J].杭州电子科技大学学报,2010,30(5):33-35.
[5] 刘长军,黄卞玛,闫丽萍.射频通信电路设计[M].北京:科学出版社,2005.
[6] Austria micro systems.AS3992 datasheet[EB/OL].[2012-04 -28].http://www.austriamicmsystems.com.