0.引 言
射频识别(RFID,RadioFrequency Iden tiFication) 技术是一种新兴的自动识别技术。它是利用无线射频方式进行非接触双向数据通信,以达到目标识别并交换数据的目的。可用来跟踪和管理几乎所有的物理对象,在工业自动化、商业自动化、交通运输控制管理、防伪及军事等众多领域都有广泛的应用前景。按照工作频段的不同,RFID系统还可以分为低频(135kHz以下)、高频(13.56MHz)、超高频(860~960MHz) 和微波(2.4GHz以上)等几类。目前大多数RFID系统为低频和高频系统,但超高频(UHF) 频段的RFID系统具有操作距离远、通讯速度快、成本低、尺寸小等优点,更适合未来物流、供应链领域的应用,也为实现"物联网"提供了可能。因此超高频RFID系统的发展是当前RFID系统发展的重点。本文介绍了符合ISO1800026标准的超高频RFID电子标签主要特点、结构、工作原理及读写方法,提出了相应读写器的解决方案,重点阐述了读写器的硬件设计及软件程序流程。实际应用结果表明该读写器具有以下特点:读写速度快(单个标签64bit/6ms)、识别率高,识别距离远(≥4m)。
1. 标签工作原理及特性
1.1 工作原理
RFID系统一般由读写器和标签(或称应答器、电子标签、智能标签) 及天线组成。本文采用某公司的UCODEHSL标签,符合ISO18000-4与ISO18000-6标准,本身无电源,靠读写器的射频场获得能源,采用负载调制方式,工作频段为UHF或2. 45GHz.工作原理如图1所示。
图1:工作原理
PC机通过RS232接口远程控制读写器。读写器接到命令后,通过天线发送射频命令实现对标签的操作,同时接收标签返回的数据。标签靠其偶极子天线获得能量,并由芯片( IC) 控制接收、发送数据。
1.2 IC结构
标签IC主要由模拟、数据处理及EEPROM三个模块构成,如图2所示。
图2:标签IC结构
模拟RF接口模块为IC提供稳定电压,并将获得的数据解调后供数据模块处理,同时将数据调制后返回给读写器。数字处理模块包括状态转换机、读写协议执行、与EEPROM的数据交换处理等功能。
1.3 存储特性
标签内置2048bit的EEPROM,分成64块(block) ,每块32bit.其中8byte为ID存储空间,216byte为用户存储空间。每字节都有相应的锁定位,该位被置"1"就不能再被改变。可以通过LOCK命令将其锁定,通过Query locK(查询锁定) 命令读取锁定位的状态,锁定位不允许被复位。Byte0~7被锁定,为标签的标识码(Unique ID)。64bitUID包含50bit的独立的串号,12bit的边界码和一个两位的校验码。Byte 8~219是未锁定空间,供用户使用。Byte 220~223也是未锁定的,作为写操作完毕的标志bit或者用户空间。
2 标签的读写
2.1 命令格式
2.1.1读写器的命令格式
读写器的命令格式如下:
帧头探测段是一个至少持续400Ls的稳定无调制载波(相当于16bit数据的传输) ;帧头是9bit的NRZ格式的manchester"O",即:010101010101010101;开始符是用来标记有效数据,原返回率采用5位的开始符(1100111010),4倍返回率采用开始符(11011100101);CRC采用16bit的CRC编码。
2.1.2 标签的应答格式
标签的应答格式如下:
静默是标签持续2byte 的无反向散射(40kb/s的速率下相当于400Ls的持续时间) ;返回帧头是:"00000101010101010101000110110001";CRC采用16bit的CRC编码。
2.2 防冲突机制
充电后的IC有三种主要数字状态:准备(READY,初始状态) ;识别( ID,标签期望读写器识别的状态) ;数据交换(DATE EXCHANGE,标签已被识别状态)。
图3:状态转换图
首先,标签进入读写器的射频场,从无电状态进入准备状态。读写器通过"组选择"和"取消选择"命令来选择工作范围内处于准备状态中所有或者部分的标签,来参与冲突判断过程。为解决冲突判断问题,标签内部有两个装置:一个8bit的计数器;一个0或1的随机数发生器。标签进入ID状态的同时把它的内部计数器清"0".它们中的一部分可以通过超高频射频识别系统读写器设计收"取消"命令重新回到准备状态,其它处在识别状态的标签进入冲突判断过程。被选中的标签开始进行下面循环:
① 所有处于ID状态并且内部计数器为0的标签将发送它们的UID.
②如果多于一个的标签发送,读写器将发送失败命令。
③ 所有收到失败命令且内部计数器不等于0的标签将其计数器加1.收到失败命令且内部计数器等于0的标签(刚刚发送过应答的标签) 将产生一个"1"或"0"的随机数,如果是"1",它将自己的计数器加1;如果是"0",就保持计数器为0并且再次发送它们的UID.
④如果有一个以上的标签发送,将重复第2步操作;
⑤如果所有标签都随机选择了"1",则读写器收不到任何应答,它将发送成功命令,所有应答器的计数器减1,然后计数器等于0的应答器开始发送,接着重复第2步操作;
⑥如果只有一个标签发送并且它的UID被正确接收,读写器将发送包含UID的数据读命令,标签正确接收该条命令后将进入数据交换状态,接着将发送它的数据。读写器将发送成功命令,使处于ID状态的标签的计数器减1;
⑦如果只有一个标签的计数器等于1并且返回应答,则重复第5和第6步操作;如果有一个以上的标签返回应答,则重复第2步操作;
⑧如果只有一个标签返回应答,并且它的UID没有被正确接收,读写器将发送一个重发命令。如果UID被正确接收,则重复第5步操作。如果UID被重复几次的接收(这个次数可以基于系统所希望的错误处理标准来设定) ,就假定有一个以上的标签在应答,重复第2步操作。
3. 系统硬件构成
本系统选用W 77E58单片机作为主控模块,与发射模块和接收模块、串口通信模块共同构成射频标签的读写系统。系统硬件原理如图1中读写器部分所示。
3.1 主控模块
主控模块选择W INBOND公司的W 77E58,它是一款高速、高集成、增强型内核为8051的高性能单片机;内置32kbit可重复编程的FlashEPROM,1kbit用MOV指令访问的内部SRAM(节省了16条数据/地址I/O口线) ,以及2个增强型全双工串行口。使用W 77E58的系统速度要比传统51系列单片机快2. 5倍左右。工作频率为40MHz的W 77E58相当于100MHz左右的8051.
3.2 发射模块
发射模块由射频调制/发射芯片和功率放大芯片组成。其原理如图4所示。调制/发射芯片选用MotorolA公司的MC33493,它是由锁相环调谐的UHF频段调制/发射芯片,采用OOK或FSK调制,具有集成的VCO、环路滤波器、可调的输出功率,工作频段可选择315~434或868~928MHz.工作频段由BAND(3) 管脚控制、调制方式则由MODE (14) 管脚设定。RFOUT(10) 管脚的输出频率F(oUt) = F(Y1)×[Ratio] (PLL )。
图4:发射模块
本设计中BAND(3) 管脚置低电平,选用868~928MHz的频段;工作频率设定在915MHz,f(Y1) = 915MHz/64= 14. 297MHz;MODE (14) 管脚置低电平,采用OOK调制方式;DATACL K(1)、DATA(2)、ENABL E (13) 管脚分别为时钟、数据输入和芯片工作开关,由单片机来控制。
为了提高系统的发射功率,本设计选用了RFMicroDevice 公司的RF2132功率放大芯片对MC33493输出的射频信号进行功率放大;RF2132是一种高功率、高效率的线性放大器,具有29dBm的线性输出功率。
3.3 接收模块
接收模块由射频接收/解调芯片和信号放大芯片组成。原理如图5所示。射频接收/解调芯片选用MotorolA公司的MC33593,它是一种由锁相环调谐的UHF频段低功率射频接收/解调芯片,工作频带在868~928MHz,中频带宽为500kHz,采用OOK或FSK调制,由DMDAT(13) 管脚设定。具有集成的VCO、环路滤波器。
本设计中DMDAT(13) 管脚置低电平,采用OOK调制。晶体振荡器的频率选择与MC33493相同。系统时钟(11)、数据接口(15、16) 及输入控制开关(14) 由单片机控制。
为了提高系统的接收灵敏度,本设计在天线和射频接收/解调器之间增加了一套射频信号放大电路,主要由RF2173组成,其功能是用于对天线接收到的射频信号进行放大,以提高MC33593输入射频信号的信号强度;RF2173具有最大32dB的增益。
图5:接收模块
3.4 串口通信模块
读写器采用RS232接口与计算机通信,电平转换芯片用ICL232.通过该接口计算机向读写器发送读、写标签等命令,读写器可把结果回送给计算机。
4. 软件设计
4.1 主程序
由于系统在PC机的监控下工作,两者之间为主从通信方式。主控模块上电完成正常初始化过程后,便进入等待状态,等PC机发来指令。当接收到PC机指令后,转去处理相应的程序。处理完毕后执行结果信息返回PC机。主程序框图如图6所示。
图6:接收模块
4.2 防冲突程序
在读写器天线所覆盖的范围之内有多个标签存在时,读写器发送命令后,会引起响应冲突,从而导致通信失败。当读写器检测到冲突后,可使用命令来处理存在的冲突。通过发送命令可以记录读写器天线覆盖范围内的标签的UID,然后利用UID的唯一性,读写器和各个标签分别建立独立的通道进行通信,从而消除冲突。读写器首先发送命令给标签,在命令的数据域和参数域中分别包含UID的掩码和掩码的长度,传送给标签的掩码要求是整字节,如果此掩码不是整字节的话将自动在高位补零。通过设置标志域的相应标志位,读写器可以设置接收标签响应的时隙为3或6,在各时隙中,读写器都可以接收标签返回的UID,读写器通过发送结束信号的UID和当前时隙序号的最低4bit加命令数据域中的掩码进行比较,如果不匹配则无应答,如果匹配将送回自己的UID.在某一时隙可能出现多个标签同时做出响应,这时读写器要记下冲突的标签掩码和时隙计数器的值,以做进一步冲突处理。流程图如图7。
图7:接收模块
5.结束语
本文设计的超高频射频识别读写器能够读写UCODE HSL 系列多种标签,读写速度最快(从单个标签上平均读取64bit,耗时不超过6ms每多取32bit耗时累加1ms;每单个标签上平均写入32bit,耗时不超过25ms每多写入32bit耗时累加25ms) ,读写距离(≥4m) ,有效地解决了多标签防冲撞问题,此超高频射频识别系统尤其适用于物流、供应链领域。