田 野,张红雨
(电子科技大学 电子工程学院,四川 成都 611731)
射频识别技术[1]是一种非接触式自动识别技术,是构建物联网的关键技术。根据通信的频段来划分,可以分成低频、高频、超高频和微波等射频识别系统。目前市场上存在的超高频阅读器总是摆脱不了与上位机之间的物理连线,物理连线主要用于供电和数据交换,在某些特殊场合,这些物理连线十分不方便,比如工作于户外的UHF阅读器。在这样的背景下,本文基于UHF协议ISO/IEC18000-6C,结合太阳能充电技术和无线通信技术,设计出一款太阳能无线UHF阅读器,它能够工作于户外,与上位机实现无线通信。该阅读器能够在USB充电和太阳能电池板充电两者间自由切换,在有可接入电源时,通过USB充电;没有可接入电源时,即在户外时,通过太阳能给锂电池充电。蓝牙转串口模块实现阅读器与上位机的无线通信。本文详细介绍阅读器的实现过程,主要工作有阅读器模块的设计、电源管理模块的设计、PIE编码和 Miller序列解码的软件实现、μCOS-II实现多任务操作。
图1 系统整体框图
如图1所示,系统硬件整体框图由3个模块组成:无线通信模块(蓝牙模块)、阅读器模块和电源管理模块。蓝牙模块实现阅读器与上位机的无线通信,接收上位接发送的命令,同时向上位机传送读到的标签数据。阅读器模块完成命令的PIE编码和射频信号的发送、标签反射波的解调和Miller序列的解码、电池电压的检查和掉电唤醒。电源管理模块主要完成太阳能的采集、USB充电、锂电池的升压以及产生电池电压检测信号。
本次设计的无线通信模块采用HC-05串口蓝牙模组[2],它采用蓝牙V2.0协议标准。配对时电流为30 mA~40 mA,配对完毕不通信时电流消耗为2 mA~8 mA,通信时消耗电流8 mA,通信距离约10 m。蓝牙模块串口TXD接阅读器模块RXD,蓝牙RXD接阅读器模块TXD,并接上共地线。
阅读器模块主要分成两部分:基带数据处理和射频信号收发。
基带数据处理部分主要完成命令的发送和标签返回信息的解码。发送的命令采用PIE编码,标签返回信息的编码格式可以为副载波 FM0基带或者Miller[3]副载波调制序列。
射频部分完成基带信号的调制、调制信号的发射、标签反射信号的解调和放大。信号的发送过程:由RF合成器SI4133产生915 MHz载波,基带信号通过 ADI公司的射频开关器件ADG198实现对载波信号的OOK调制,调制后的信号经过RF2162实现功率放大。功放RF2162为发热器件,所以在硬件布板时应该处理好RF2162的散热,软件设计上也要做好RF2162的保护,让其工作一段时间后关闭一段时间。放大后的射频信号经过微带线完成50 Ω阻抗匹配,由天线发送出去。
信号的接收过程:接收电路采用UHF读写器解调电路专利[4],标签反射信号经过50 Ω微带线,单端信号变双端信号,如图2所示,双端信号相位相差180°。在接收信号过程中,一直有载波发送(给标签提供能量),所以接收信号和915 MHz载波分成两路在二极管上实现混频解调,再分别经过LC滤波,成为两路相位差为180°的差分信号,经过差分放大,最后经过电压比较芯片MAX942,解调出标签返回的FM0或Miller序列。
图2 阅读器模块
本设计采用ARM7芯片LPC2138[5]处理基带信号。通过调节PWM定时器的输出波形周期和脉宽实现PIE波形的产生。通过定时器0的捕获通道0捕获FM0或Miller序列,并配合软件解码。
根据设计需求,阅读器每天连续读卡时间约为2 h(其余时间待机,功耗较低),每小时功耗为 330 mW,锂电池充满一次电需工作10天。因此,选择6 800 mAH的锂电池作为储能装置。根据太阳能电池板的工作效率和当地太阳光的照度,选择10 W的太阳能电池板作为太阳能采集设备。
电源管理模块的具体要求为:(1)可以用USB对电池充电,也可以用太阳能电池板对电池充电,当用USB充电时,切断太阳能电池板充电回路。(2)电源管理模块向外提供稳定的+5 V电压,所以需对锂电池进行升压稳压。(3)MCU需时刻监测电池电量,如果电池电量低于一定额度(3 V),需强制使系统进入掉电模式。(4)当电池电压恢复到正常值(3.9 V)后,将系统从掉电模式换醒。电源管理模块电路图如图3、图4所示。
图3 电源管理模块a
太阳能充电电路以CN3722[6]为核心,它采用恒定电压跟踪法(CVT[7]),能最大效率地利用太阳能。通过电阻RCS设定恒流充电时充电电流的大小,本次设计恒流充电电流为1 A。该芯片能够对锂电池实现三段充电法充电。USB充电芯片采用TP4056,按要求,有USB充电时,断开太阳能充电电路,如图4所示,采用PMOS来实现。当有 USB 充电时,Q3:Vg=5 V,Vs<4.2 V(锂电池最大电压),Q3截止。同理,有USB充电时,Q1也截止,USB为整个系统提供电能。由于电池电源不稳定,所以还要加上一个DC-DC升压电路SP6641B-5,为阅读器模块提供稳定的5 V输入电压。
图4 电源管理模块b
LPC的AD0.0引脚接图4所示的 VADC,引脚 P0.1接OP输出EINT0,实现实时电池电压监测。当电压低于1.5 V(锂电池电压低于 3 V被分压)时,设置 P0.1接收高电平中断,系统进入掉电模式。而当电池电压高于3.9 V时,OP的输出EINT0将输出高电平,产生EINT0中断,将系统从掉电模式唤醒。3.9 V和3 V有0.9 V的窗口,从而避免监测误差使系统频繁地在正常模式和掉电模式间切换。
关于基带信号处理,关键是PIE码的产生和Miller序列的解码。
根据ISO18000-6C协议,Tari为询问机向标签发送信号(PIE码)的基准时间间隔,即数据0的持续时间。PW为Tari时间间隔中,低电平所持续的时间。本设计选择Tari为 6.25 μs,PW 为 3.125 μs。数据1的周期为12.5 μs,PW为3.125 μs。为了方便通过PWM产生波形,将数据1的波形分成 6.25 μs高电平再加上数据 0的波形。LPC2138的 PWM5(引脚P0.21)作为 PWM输出。寄存器PWMMR0设置PIE序列周期,PWMMR5设置下降沿的位置。在PWM中断处理程序中更新寄存器PWMMR0和PWMMR1的值来产生下一个PIE序列。
标签发射回的信息符合FM0编码规则:(1)在每位数据边界倒转相位。(2)数据0在其中间有一个相位倒转。一般一个FM0码用一个副载波表示,但有时为了降低信号检测误码率,可以用2、4或者8个副载波表示一个FM0码,称之为Miller副载波调制技术。阅读器发送query命令时选择副载波数,本设计采用M=2。Miller2码的规则:每个数据序列用两个副载波周期表示,数据0的副载波周期不发生相位翻转,数据1的副载波周期发生相位翻转,两个数据0边界要发生相位翻转。在本设计中将query中的TRext位设为1,这样每次从标签中返回 Miller序列时,都有 16个前导 0加上 010111(前同步码),通过检测前导序列来判断是否已经开始反射数据。
通过LPC2138定时器0的捕获功能和状态机完成Miller2序列的检测。研究Miller2序列发现,Miller2序列下降沿的时间间隔只有图5所示的两种情况:T或者1.5T(T为 Tari=6.25 μs)。通过定时器 0的捕获通道 0捕获Miller序列的下降沿,并在中断处理程序中读取当前定时器快照的计数值,求出与上次计数值的差值。然后通过图6所示的状态机,就能够解码标签反射的Miller2序列。如图6所示,Sx为起始状态,a/b(a:输入,b:输出)箭头指向从初态到次态。
图5 Miller序列示意图
图6 解码状态转移图
LPC2138接收Miller2序列的引脚为P0.2,设置该引脚捕获下降沿,下降沿到来时,进入中断处理程序,读取捕获寄存器CR0的值。计算出与上次下降沿之间的差值a,将差值存入 FIFO(全局数组)中,在没有下降沿捕获时,处理器执行解码程序。本设计采用边接收编解码的方法。这是因为,根据ISO18000-6C协议,命令间有时限要求,若接收完Miller2序列后,再进行解码,可能会破坏这种时限。
2.2.1 ISO18000-6C命令
完成了PIE码发送和标签返回Miller2副载波的解码,就能够很容易地实现ISO18000-6C规定的所有命令。根据协议,命令分为三类:选择命令(select)、盘存命令(query、queryadjust、ACK 等)和访问命令(Read、Write、Lock、BlockWrite、BlockErase)。根据协议中命令的格式,分别予以实现。
2.2.2 多任务的实现
μCOS-II[8]是一款抢占式多任务操作系统内核,应用十分广泛,将其移植到LPC2138也十分容易。本设计要求阅读器有以下功能:多卡访问(盘存)、单卡访问、低电压监测。多卡访问操作即批量读卡;单卡访问即对一张卡进行读/写、锁定和批量访问等操作;低电压监测实现检测电池电压的功能,当电池电压低于门限电压下限时,让阅读器工作于掉电模式,待电池电压恢复到门限电压上限时将系统唤醒。
创建 3 个用户任务:MainTask、Tag_Inventory、Tag_Operate, 创建 2个信号量:Semp_Invent和 Semp_Operate。MainTask任务优先级最高,设为5,完成电压检测和操作模式的选择;任务Tag_Inventory优先级为6,完成多卡访问;任务Tag_Operate优先级为7,完成单卡访问。当进入MainTask任务后,马上获取2个信号量,使用case语句实现任务选择,选择到某项任务后,释放该任务所对应的信号量,执行相应任务。在任务中,先获取相应信号量,如OSSemPend(Semp_Invent,0,&err),然后执行该任务,最后释放信号量OSSemPost(Semp_Read)。
主任务中有两项功能:(1)完成对系统电压的检查。当电压小于3.0 V时,系统进入掉电模式,之后,只有当系统电压大于3.9 V后,才可通过外部中断将系统唤醒。(2)读卡模式选择。选择多卡访问模式时,系统盘存完附近的UHF卡的EPC后返回主任务。选择单卡访问模式时,可以对单张UHF卡执行读、写、锁定、块读和块写等操作。
连接好太阳能电池板、电源管理模块、阅读器模块、和无线通信模块,消耗锂电池的电能,直至系统进入掉电模式,然后将设备置于阳光充足的户外,采取适当的散热和防水措施。充电一段时间后,上位机蓝牙设备匹配阅读器蓝牙模块,匹配成功后,向阅读器发送盘存命令,太阳能无线超高频阅读器能够正确读出多张标签的EPC (只 读 EPC最后16 bit):FFAB、FF09、FFA9、FF22、FF6C、FF37。实验结果证明达到了设计预期。
[1]游占清,李苏剑.无线射频识别技术理论与应用[M].北京:电子工业出版社,2004.
[2]天猫商城.HC-05蓝牙模块[EB/OL].(2013-03)[2013-6-8].http://detail.tmall.com/item.htm?spm=a230r.1.14.1.Cvs0Nd&id=17857557766.
[3]吴小龙,张红雨.基于ISO18000-6C协议标准的 RFID阅读器设计[J].电子技术应用,2012(9):32-38.
[4]武汉盛华微系统技术股份有限公司.UHF读写器解调电路:中国,200910210904.6[P].2010-05-12.
[5]NXP Semiconductor.LPC2131/32/34/36/38 Datasheet[EB/OL].(2011-7-29)[2013-6-8].http://www.NXP.com.
[6]如韵电子.CN3722 Datasheet[EB/OL].(2012-8-02)[2013-6-8].http://www.consonance-elec.com/.
[7]左巧安,陈道炼.光伏发电系统最大功率点跟踪控制方法研究[J].电工电气,2010(7):8-12.
[8]LABROSE J J.嵌入式实时操作系统 μCOS-II[M].邵贝贝,译.北京:北京航空航天大学出版社,2003.