HF频段RFID长距离读写器的研究与开发
2008-11-10
作者:曹 洁,沙济彰
摘 要: 给出了一种改进型的RFID读写器" title="读写器">读写器设计方案。介绍了各硬件模块,并给出了软件的总体流程、防碰撞" title="防碰撞">防碰撞算法及实现代码,最后进行了研发测试。对比基于射频芯片的RFID读写器设计,此方案提高了系统灵敏度和读写距离" title="读写距离">读写距离。本设计拥有自主知识产权,已用于开放式门禁系统" title="门禁系统">门禁系统。实践表明,该系统电路稳定,运行正常。
关键词: RFID;读写器;ISO-15693协议;DSP
射频识别技术(RFID)是上世纪80年代兴起并不断走向成熟的一项自动无线识别和数据获取技术。与传统的条码、磁卡等自动识别技术相比,RFID技术在工作距离、保密性、智能化及其环境适应能力等方面都有显著优势,且可同时识别多个高速运动物体,有广阔的发展前景[1]。
RFID系统由电子标签、天线、读写器三部分组成。读写器通过天线发送、接收信号,无接触地读取和识别标签中所保存的数据,并将信息传送至上位机进一步处理,从而达到目标识别的目的。由此可见,读写器是RFID技术的核心。目前HF频段RFID读写器的研发正处于逐步成熟阶段,国际上知名的大公司有TI、Philips等,国内生产厂商相对较少,且大部分都是在已有射频芯片的基础上进行数字部分的研发,系统集成商则是在国外公司知识产权的基础上根据客户需要做适当改进。
HF频段RFID系统中标签所获能量微弱,无力再向周围发射无线电波,只能反射来自读写器的电磁波,故标签的响应信号微弱,影响读写距离。本文针对这一问题,在介绍电子标签的基础上,给出了一种基于开放式门禁系统应用的读写器设计方法,提出将模拟板、数字板分别研发的思想,大大提高了读写距离。该读写器工作频率为13.56MHz,符合ISO-15693协议。硬件电路采用TI的TMS320F2812为主控芯片,以符合ISO-15693协议的所有无源标签为读写目标,软件设计很好地实现了多卡识别的防碰撞算法" title="防碰撞算法">防碰撞算法。
1 电子标签简介
每个电子标签由耦合元件及芯片组成,内部一般保存有约定格式的电子数据,且具有无法修改、仿造、全球唯一的识别号(UID)。在HF频段RFID系统中,当读写器处于工作状态时,与其相连的天线线圈不断地向外发出一组固定频率(13.56MHz)的电磁波。当无源电子标签进入读写器工作区域时,在该电磁波的激励下,标签内的LC串联谐振电路产生谐振,从而使电容充电而产生电荷。该电容又通过一个单向导电的电子泵,将电容内的电荷泵送到另一个电容内存储。当后者充电达到2V时,它就可用作为标签内部其他电路的工作电源。标签芯片中的有关电路对读写器发来的信号进行解调、解码、解密,然后对命令请求、密码、权限等进行判断。若为“读”命令,控制逻辑电路则从存储器中读取有关信息,经加密、编码、调制后通过标签内部天线再发送给读写器;若为修改信息的“写”命令,有关控制逻辑就会使内部电荷泵提升工作电压,以擦除EEPROM中的内容并进行改写;若经判断发现所对应的密码和权限不符,则返回出错信息[2]。
2 读写器硬件设计
目前的RFID读写器大多采用一块射频芯片完成整个系统的收发,虽简单易行,但降噪性能和系统灵敏度始终没有改善。
本设计提出模拟、数字部分分别研发的思想,硬件框图如图1所示。由DSP芯片产生脉冲位置编码(PPM)信号,再对13.56MHz载频进行调制。已调信号的功率很弱,需先进行功率放大,再经滤波和调谐加到天线上,以提高对卡的操作距离。系统可通过DSP实现输出功率控制,最小功率为0.25W。天线线圈在13.56MHz工作频率上呈现阻抗形式,为了实现与50Ω系统的功率匹配,需先通过匹配电路将此阻抗转换为50Ω电阻,然后通过50Ω同轴电缆连接到读写器末级。在接收通道中,由标签响应回来的信号,首先通过带通滤波器取出一边带,放大后送入解调器,最后将解调后的信号送入DSP芯片上作A/D采样判决,并进行解码和校验,完成整个信号的接收处理。该读写器用于开放式门禁系统时,除完成简单的标签识别外,还需通过RS232接口与上位机通信, 由此形成大的数据网络,以实现对标签的管理、操作等。因此读写器的硬件设计分为模拟部分和数字部分。模拟部分即射频模块;数字部分又可分为主控模块,电源管理模块和对外接口模块、所选芯片如表1所示。
2.1 模拟部分
本设计自主研发了一块供电电压为24V的模拟板,简要论述如下。
2.1.1 发送模块
发送模块的功能:(1)13.56MHz的晶振产生载波信号,DSP将欲发送的信息及调制幅度(10%)传送至74HC125D芯片端,完成ASK调制;(2)NPN型射频功率晶体管实现功率放大;(3)经匹配电路将载频由天线发送出去。
2.1.2 接收模块
接收模块的功能:(1)设计窄带滤波器取出一边带,并滤除13.56MHz频率分量;(2)二级放大电路;(3)将边带信号与本地13.56MHz载波混频后获得调制到423kHz单副载波上的中频信号;(4)将中频信号放大并包络检波出原始信号;(5)运放LM358整形放大;(6)将解调后的模拟信号送至DSP采样。
该射频模块的输出阻抗为50?赘,外接天线的匹配状况对系统的接收性能有直接影响,用网络分析仪调试天线谐振在13.56MHz,输出阻抗为50?赘。此外,应防止和抑制电磁干扰,提高电磁兼容性,要选择介电常数公差小的基材。射频部分尽量使用SMT(表面贴装式)元件,减少过孔,并在表面加接地金属屏蔽层[3]。
2.2 数字部分
2.2.1 主控模块
本系统采用DSP芯片TMS320F2812作为信号采集和处理的核心。该芯片采用高性能的静态CMOS技术,是基于TI C×28内核的32位定点数字信号处理器。其优化的事件管理器、快速灵活的中断管理,为RFID读写系统提供了更加灵活、高效的控制方案[4]。
在本设计中,DSP芯片的供电电压为3.3V和1.8V,外部采用27.12MHz晶振,通过片内锁相环5倍频后,时钟频率高达135.6MHz。DSP的主控作用体现在:它首先通过片上自带的12位ADC对模拟板发来的信号进行采集,并将采集后的数据暂存在片内存储器中,通过软件配合实现噪音处理、曼彻斯特解码及检测碰撞等,随后进行具体读写命令的判断和执行,并通过串行接口RS232与上位机通信。DSP的GPIO口具体使用情况如下:
GPIOA:用于通道(bit5)、相位(bit8)和调制度(bit14)选择、命令(bit15)的输出以及读写器的开关控制(0x0000)。
GPIOB:报警动作。
GPIOD:运行灯(bit5),报警灯(bit6)指示。
GPIOF:串行口232通信(bit4发、bit5收)。
在该模块的设计中,还需总线隔离器74HC245芯片,实现射频模块与DSP的GPIOA口的连接。
2.2.2 电源管理模块
该模块的主要器件为L7805及PS767D318,电路原理如图2所示。其中,24V输入电压经三端稳压器L7805后,稳压至5V。由于DSP的供电电压为3.3V和1.8V,故还需外接双输出低压差电压转换器PS767D318,实现第二级电平转换。
2.2.3 对外接口模块
该模块的主要器件为MAX232芯片,它是一款符合EIA RS-232标准和V28规范的双向发送/接收接口芯片,通过标准的九针串口与上位机相连。
3 读写器软件设计
3.1 总体设计流程
读写器应用于开放式门禁系统时,需要PC机监控,两者以主从方式工作。主控模块上电复位完成初始化后,进入等待状态。当PC机发来指令后,中断唤醒主控模块接收指令并处理相应程序,完毕后将信息返回PC机并再次进入等待状态,总体流程如图3所示。当中断唤起读写器发送命令并已检测到有标签进入时,便进行接收。接收部分流程如图4所示。主控模块在发出命令后,立即对模拟板发来的信号ADC采样,并不断采集噪声,随后完成检测数据、解码、校验、防碰撞等处理,最后将标签信息发回PC机,退出中断。
3.2 多卡识别时防碰撞算法的实现
当读写器处于工作状态时,其天线覆盖范围内的所有标签都将被激活,随时准备响应读写器的命令,这就造成了标签的碰撞。
在ISO15693协议中,适用于多卡识别的命令有Inventory、Stay quiet等。Inventory用以查询天线覆盖范围内的UID(标签识别号),其帧格式包括Flags(标志位)、Mask length(掩码长度)、Mask value(掩码值)等。读写器发送Inventory命令时须定制所需的时隙长度,并在指令域后添加掩码码长和码值。假设Mask length,Mask value均为0,时隙长度slot设为16,则读写器在slot=0时发送Inventory命令,工作区域内卡号尾数为0的标签将会首先响应,并以一定的帧格式发回自己的UID,随后在时隙slot=1时,读写器继续发送EOF,工作区域内尾数为1的标签将会响应。依此类推,直到读写器发出第15个EOF,一个完整的Inventory命令结束。若在工作区域内有两张标签的卡号分别为****82H和****12H,则在slot=2时,两张卡均响应且产生碰撞。此时需记录下碰撞位置2,然后在下一个Inventory命令中,设置Mask length=4、Mask value=2,则在新一轮的slot中,两张标签将分别在slot=8和slot=1时响应,这样就很好地解决了防碰撞问题。Stay quiet命令用于使工作区内与发送帧中UID相同的标签处于静止状态,不再响应任何ISO命令。下面给出防碰撞算法的实现编码(以16时隙为例):
function push(mask,address);pushes on private stack
function pop(mask,address);pops from private stack
function pulse_next_pause;generates a power pulse
function store(VICC_UID);stores VICC_UID
function poll_loop(sub_address_size as integer);
address length must be four (4) bits.
pop(mask,address)
mask=address & mask;generates new mask;send the Request
mode=anticollision
send_Request(Request_cmd,mode,mask length,mask[0])
for address=0 to(2^sub_address_size-1)
if no_collision_is_detected then;VICC is inventoried
store(VICC_UID)
else;remember a collision was detected
push(mask,address)
endif
pulse_next_pause
next sub_address;if some collisions have been detected and not yet processed,the function calls itself recursively to process the last;stored collision
if stack_not_empty then poll_loop (sub_address_size)
end poll_loop
main_cycle
mask=null address=null
push(mask,address) poll_loop(sub_address_size)
end_main_cycle
4 测试
研发设计过程中,对该读写器的性能进行了多项测试,主要测试项目及测试结果如下:
(1)运行稳定性:在长时间不关机情况下,运行正常,无死机或重新启动现象,读写能力正常,工作距离有±5cm轻微浮动。
(2)与上位机通信情况:正常。
(3)虚检漏检情况:无。
(4)防碰撞能力:每秒40个。
(5)读写距离:单天线1.1m左右,双天线1.8m~2m。
(6)速率问题:下行信号最快速率26.48kb/s,上行信号最快速率为26.69kb/s。对于开放式门禁系统完全满足实际需求。对于那些对读写距离或速度有更高要求的系统,如仓库管理、不停车自动收费等系统需要用UHF频段的射频识别系统甚至是有源的射频识别系统方案来解决。
本文设计了一种符合ISO-15693协议的HF频段RFID读写器,配合适当的天线,读写距离可达1.1m左右,多卡识别能力可达每秒40张。基于该读写器的门禁系统已投入应用,系统工作稳定,效果良好。与市面上现有的HF频段长距离读写器相比,在工作距离相同的情况下,多卡防碰撞识别能力有显著提高,且产品信价比高,系统灵敏度好,运行稳定可靠。在此读写器的基础上,只要稍加改动也可开发成其他RFID应用系统,如考勤系统、公交车收费系统、超市自动售货、电子防盗、图书馆、洗衣店等管理系统等。
参考文献
[1] Klaus Finkenzeller.识别(RFID)技术[M].北京:电子工业工业出版社,2002,5.
[2] 周晓中,阳春华,刘伟群.非接触式Mifare卡读写器开发[J].微型机应用,2005,24(4):15.
[3] 武慧芝,朱云龙,罗海波.基于物流仓储管理的RFID读写器设计[J].电子技术应用,2006,32(3):75.
[4] 苏奎峰,吕强,耿庆锋,等.TMS320F2812原理与开发[M].北京:电子工业出版社,2005.