基于RFID的防伪读写器设计与实现
长期以来,防伪技术一直是人们关注的问题。我国的防伪技术经过十几年的发展,已经达到了百亿元的市场规模。目前,防伪领域逐渐兴起电子防伪的潮流,其中,RFID作为新兴的防伪技术已经引起了广泛关注。
射频识别RFID(Radio Frequency Identification)是一种非接触无线识别技术。目前,RFID防伪应用基本上是基于唯一的ID号来完成。RFID标签芯片内有用于产品标识的全球唯一编码以及产品验证信息,该信息被专用读写器所读取,读取到的信息被发送到后台数据库,后台数据库通过查询验证将结果返回到显示设备,标签采用可损坏式标签,一旦损坏,信息就无法被读取,这样能够保证数据内容不被窃取,通过以上措施达到防伪目的[1-2]。
1 系统特点和功能
传统的RFID防伪应用模式只考虑利用标签的唯一编码来实现防伪验证,由于无线信道的开放性,系统难以防止来自非法读写器的标签数据恶意读取和假数据欺骗。针对以上缺点,本文设计一种基于RFID和GSM短消息通信的防伪系统。
该系统由手持式读写器前端系统和后台防伪数据库两部分组成。手持式读写器系统位于零售商处,后台防伪数据库由生产企业管理,前后端系统之间利用GSM短消息实现数据交互。防伪读写器以SIM(Subscriber Identity Model)卡号作为本身的ID号,SIM卡是一块大规模集成电路,上面存储了客户的信息、加密的密钥等内容,完全防止了被复制和盗用的可能,能够有效防止非法读写器的标签恶意读取和信息欺骗。
本文重点介绍手持式RFID防伪专用读写器的设计和实现。该读写器工作频段为13.56 MHz,符合ISO/IEC 15693协议,能够通过GSM通信收发短消息与企业防伪服务器交互,对产品进行验证。下面详细介绍RFID防伪读写器的硬件设计和软件流程以及防伪读写器的防伪机制。
2 硬件设计
RFID防伪采用专用防伪读写器对标签内数据进行读取,现场验证设备包括标签和防伪读写器两部分。本文只介绍防伪读写器的硬件设计与实现,对标签部分不作介绍,只要符合ISO/IEC 15693协议的标签均可读取。
系统采用ATMEL公司的AT89C51RD2作为主控芯片,采用专用读写器芯片对标签进行读写,标签中的数据验证通过后由液晶屏显示,同时标签中的防伪数据通过GSM/GPRS模块发送到后台防伪服务器,防伪服务器接收数据,并对防伪读写器(SIM卡号)和商品信息进行双重验证,并将结果返回防伪读写器,完成验证。硬件框图如图1所示。
2.1射频电路设计
读写模块选用韩国3Logic公司的TRH031M芯片。该芯片具有高达64 B的内部数据FIFO,通过内部硬件电路完成CRC校验。系统与主控制器采用3.3 V CMOS接口,采用数据总线为8位的Intel读写模式,并选用地址数据总线共享模式。同时有中断请求线(IRQ)与主控制器相连。
ISO/IEC 15693协议规定,识别卡到读写器的通信使用副载波进行振幅键控或者频移键控。当使用振幅键控时,副载波的频率fs为424 kHz(fc/32);当使用频移键控时,2个副载波频率fs分别为424 kHz(fc/32)、484 kHz(fc/28)。调制后的信号频谱将在载波频率两边产生2条边带谱线,其频率分别为fH=fc+fs、fL=fc-fs,因此必须保证天线能良好接收此边带信号。天线带宽应大于fH-fL=2fs=848 kHz或968 kHz。以了保证天线能良好接收信号,天线带宽应大于968 kHz。以此综合考虑能量供应和通信距离,建立所需要磁场。采用的天线大小约为8 cm×10 cm,并按照要求,采用LC低通滤波器,将天线阻抗匹配为500 Ω[3]。
2.2 GSM/GPRS通信
GSM通信选用Wavecom公司的Q2403A模块,Q2403A为双频E-GSM/GPRS 900/1800模块,在3.6 V工作电压下EGSM通信功耗为2 W,具有2个对外接口:天线接口和通用接口,用于数字通信、键盘和音频等。
2.2.1 SIM卡电路
SIM卡符合GB/T 16649标准和ISO/IEC 7816协议所规定的SIM卡的物理特性、触点规范、传输协议和数据编码规则等。
为了实现对SIM卡的静电保护,需要在除SIM卡电源脚外的管脚加入保护二极管,并且要求保护二极管的寄生电容不超过10 pF。在此选用集成保护二极管芯片DALC208作为保护芯片。DALC208片内集成8只两两串联的二极管,寄生电容小于5 pF,可实现对4个管脚的保护[4]。
2.2.2 LED指示电路
Q2403A模块提供LED指示功能。LED状态与模块的工作状态对应关系如表1所示。通过LED指示灯,用户可以直观了解Q2403A的工作状态。
2.3主控模块
系统选用单片机AT89C51RD2作为主控制器,具有4个8位数据输入输出端口,时钟频率最高可达60 MHz,1 792 B的片内XRAM,双数据指针,具有电源管理功能,另外还有UART接口、键盘接口、看门狗电路;内部程序存储器达64 KB,可在线编程; 工作电压为2.7 V~5.5 V。
主控芯片可与TRH031接口、Q2403A接口、键盘接口、液晶接口、键盘接口、蜂鸣器接口。
2.3.1电源管理
本系统选用锂电池作为主要供电电源,也可以通过外部开关电源输入供电。选用TI公司的BQ24032来管理电池的充放电。电池充电期间,系统仍能正常工作。
主控制器电源电压可以在2.7 V~5.5 V之间选择,LED与蜂鸣器可以工作在3.0 V~5.0 V之间。为保证在GSM/GPRS数据传送期间,主控制器、LED和蜂鸣器能得到稳定的电源电压,选用MAXIM的MAX1595(3.3 V)作为主控制器电压调节器。
读写器TRH031M模块工作电压在2.6 V~3.5 V之间选择。但是读写器模块内部有模拟电路,对电源的噪声要求较高,因此选用低噪声的低压差稳压器MAX1818(3.3 V)作为读写器模块的电压调节器。THR031M的数字电源(DVDD)、模拟电源(AVDD)和射频发送电源(TVDD)输入端应分别加入滤波网络。滤波电路采用L型网络,滤波电感为高频绕线电感。
液晶工作电压为5 V,选用电荷泵MAX1595(5.0V)为LCD提供5 V电源。
2.3.2 键盘和显示设计
AT89C51RD2提供方便的键盘管理功能。单片机内部有专门的寄存器进行键盘管理。设计中选用低电平为敏感信号,采用5个I/O口管理键盘,最多可以管理32个按键。选用图形点阵液晶12864作为显示设备。
3 软件设计
3.1软件总体流程
防伪读写器工作上电复位后首先进行系统初始化:对液晶模块和TRH031M的初始配置,检测SIM卡是否已插入,GSM网络是否可用,电池电量检测,防死机工作等。
初始化结束后进入等待防伪标签检测界面,用户输入确定后进行标签检测,TRH031模块中断告知主控制器检测结果,主控制器进行防碰撞处理并选定标签。读取到商品ID号后,消费者可以选择输入自己的手机号或者不输入,当输入手机号后,防伪读写器将消费者手机号和读取到的商品ID同时发送到后台服务器进行防伪验证,后台服务器会将验证结果同时发送到消费者手机和防伪读写器中。如果消费者没有输入手机号,则防伪读写器将只发送商品ID给后台服务器,后台服务器也只将结果发送给防伪读写器显示。其总体流程如图2所示。
3.2 读写程序设计
读写器(VCD)与识别卡(VICC)之间指令和数据的通信,是一种基于“VCD先说”的机制。即除非接收到并正确地解码一个VCD发送过来的指令,否则VICC将不会有动作。VCD发送请求格式及VICC响应格式分别如表2、表3所示。
TRH031M封装了符合ISO/IEC 15693协议的物理层和数据链路层,只需在传输层以上编写程序。在发送指令时,只需将指令代码写入FIFO寄存器,然后启动发送命令即可。
ISO/IEC 15693协议中描述的防冲突在VCD端采用轮询的机制,在VICC端采用比较应答的机制。读写器(VCD)采用请求目录指令(Inventory Command)查询当前磁场范围内VICC的唯一标识符(UID)来解决冲突问题,其参数包括:标志、命令、可选的应用标识符、掩码长度(MASK LENGTH)、掩码值(MASK VALUE)。
识别卡的UID低4位冲突的概率为1/16=62‰,低8位冲突的概率为1/256=3.9‰。
实际ISO/IEC 15693协议中提供的防冲突算法具有更先进的机制。命令序列中的标志字节(Flags)中的第5位为应用标识符标志(AFI_flag),当此标志置1时,命令序列中要包含AFI域,识别卡比较收到的AFI域与自己的应用标识符AFI是否匹配,如果不匹配,则识别卡不响应。
命令序列中的标志字节(Flags)中第6位为时隙数目标志位(Nb_slots_flag),当Nb_slots_flag=0时,请求目录指令采用16时隙的方式,这就是在轮询机制的基础上加入了时隙ALOHL防冲突算法。时隙数附加在MASK VALUE前同时进行比较,将使冲突发生的概率更小,读写时间更短[5]。
3.3 GSM/GPRS通信程序设计
防伪读写器中用到的GSM通信主要为短消息的发送和接收。防伪读写器将用户手机号(可选)和商品ID号利用短消息的方式发送到后台验证服务器,后台验证后将验证结果以短消息的方式发送到用户手机和防伪读写器。
短消息收发有关的规范主要包括GSM 03.38、GSM 03.40和GSM 07.05。前二者着重描述SMS的技术实现(含编码方式),后者则规定了SMS的DTE-DCE接口标准(AT命令集)。一共有3种方式来发送和接收SMS信息:Block Mode、Text Mode和PDU Mode。Block Mode目前已很少使用。Text Mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。PDU Mode被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。因为需要发送和接收中文,因此本设计采用PDU模式收发短信。
主控制器与Q2403A采用串行异步通信接口,可以设置波特率,本设计采用9 600 b/s的波特率。主控制器采用AT指令对Q2403A进行控制。
PDU相当于一个数据包,它由构成短消息(SMS)的信息组成。包含有源/目的地址、有效时间、数据格式、协议类型和正文,正文的长度可达140 B,它们都以十六进制表示,即只包含由0~9、A~F这些数字和字母。PDU格式分别如表4、表5所示。
消费者选择输入手机号时,防伪读写器在用户信息(UD)中将同时发送商品ID号和消费者手机号,如果没有输入,则只发送商品ID号。
本文给出了基于RFID和GSM通信的防伪读写器的设计与实现,以酒类防伪和家电类防伪为模型,对系统进行了实际测试,运行良好,能够实时准确地反馈验证结果给消费者,操作简单,显示直观。该系统能够满足大部分贵重商品的防伪需求,特别是通过后台服务器验证的防伪机制,具有技术难度高难以仿造的特点。该防伪机制为电子防伪提供了新的途径,具有广阔的应用前景。