射频辨认(RFID)技能是一种非触摸式的自动辨认技能,通过射频信号自动辨认方针方针并获取相关信息。一般RFID体系主要由运用软件、射频卡以及读卡器三部分构成[1]。相对于低频段的RFID体系,作业在860 MHz~960 MHz的超高频段(UHF)RFID体系有着读取间隔远、阅览速度快等长处,是现在国际上RFID技能发展的热门[2]。读卡器的规划是RFID体系规划中的要害部分,规划计划有许多种。FPGA[3]具有开发简略、静态可重复编程和动态在线编程的特色,已经成为当今运用最广泛的可编程专用集成电路。现在出产RFID产品的许多公司都运用自己的规范,可供射频卡运用的几种规范有ISO/IEC 11784、ISO/IEC 14443、ISO/IEC 15693和ISO/IEC 18000等。其间运用最多的是ISO/IEC 14443、ISO/IEC 15693和ISO/IEC 18000这三个规范[4]。本文依据ISO/IEC 18000-6 Type B协议规划了一款作业频率为915 MHz的读卡器。
1 读卡器的硬件规划
读卡器的硬件能够分为三大模块:FPGA数字信号处理模块、MCU及人机接口模块和射频收发模块,其结构框图如图1所示。FPGA数字信号处理模块用来完结ISO/IEC 18000-6 Type B 协议中规则的基带数据编解码,MCU及人机接口模块用来完结指令的跳转操控和回来数据的显现等一些操作接口,射频收发模块用来处理前端的超高频信号。
1.1 FPGA数字信号处理模块
FPGA数字信号处理模块包括时钟分频模块、FIFO、曼彻斯特编码器、CRC生成校验、FM0解码器、串并改换电路及对应的帧发送接纳操控器,其结构框图如图2所示。
该模块的内部作业流程如下:
(1)发送部分
①数据通讯接口8 bit并行接纳来自MCU的指令数 据,数据在FIFO中缓冲。
②数据做并行到串行的转化。
③在发送操控器的操控下,串行数据通过CRC模块,生成16 bit的CRC校验值,并附加在原数据的后边。
④依据ISO/IEC 18000-6 Type B协议规则,把上述的数据进行曼彻斯特编码。
⑤把已通过曼彻斯特编码的数据引向一个已预置帧头的移位寄存器,数据一到便发动移位寄存器,然后把输出数据传送给射频收发模块。
(2)接纳部分
①从射频收发模块接纳一帧基带信号,用移位寄存器来检测帧头。若检测到帧头,则发一个收到帧头的信号给接纳操控器。
②若接纳操控器接纳到帧头的信号,则立刻发动FM0解码。
③解码后的数据传送给串/并行的转化电路,转化后的数据暂存在FIFO。
④一起解码后的数据也送给CRC模块进行校验,若校验成果过错,则铲除存于FIFO中的数据,告诉MCU其接纳的数据过错;若校验成果正确,则把FIFO中的数据传送给MCU。
1.2 MCU及人机接口模块
MCU及人机接口模块以C8051F020单片机[5]为中心,由FPGA接口、LCD、PS/2键盘、UART接口以及JTAG接口等外围电路组成,其结构框图如图3所示。
该模块完结的功用有:(1)C8051F020担任整个读卡器内各部分的和谐作业(包括与计算机的数据通讯);(2)在发动时向FPGA传送装备数据,初始化FPGA;(3)在读卡进程中向FPGA传送读卡指令,然后通过INT1间断发动接纳FPGA信号;(4)处理接纳回来的射频卡信息(卡号、暗码等);(5)完结二进制树形防磕碰功用;(6)驱动LCD,显现体系的提示信息;(7)扩展一个PS/2键盘,能够输入数据及指令;(8)操控TR1000芯片,设置OOK发射方法或ASK接纳方法;(9)操控发射功率巨细;(10)扩展EEPROM,存储读出的射频卡的信息。
1.3 射频收发模块
超高频段射频收发模块的开发一般能够选用两种计划:一是选用分立元件树立射频电路;二是选用无线射频收发模块以完结基带信号的调制解调[6]。因为榜首种方法的电路调试比较费事,而且会占用很长的开发时刻,所以本规划采纳第二种计划。
ISO/IEC 18000-6 Type B 协议规则读卡器到射频卡端的射频调制方法为调制深度为99%的ASK调制,也便是能够近似看作为OOK调制;而射频卡到读卡器端的射频调制方法为反向散射调制,其调制方法与ASK调制相似,所以在解调端能够依照ASK方法解调。射频收发模块的中心芯片选用RFM公司的TR1000芯片。TR1000是一款单片OOK/ASK通用无线射频收发器芯片,合适高安稳、小尺度、低功率、低价格的短间隔无线数据通讯和无线操控运用。
2 读卡器的软件体系规划
软件规划选用模块化和结构化的编程思维,在初始化的时分由单片机装备FPGA。考虑到C言语可读性强,移植性好以及MCU的实际状况,本规划选用C言语对C8051F020进行编程。读卡器的软件体系大致能够分为:读写卡操作程序、防抵触程序和串行通讯程序。
2.1 读写卡操作程序
读写卡操作程序完结依据ISO/IEC 18000-6 Type B协议的基带信号编解码,其程序规划流程图如图4所示。
详细作业进程如下:(1)上电复位,体系初始化,包括单片机时钟、端口、LCD、定时器的初始化,装备FPGA和开间断。(2)等候接纳上位机或键盘发送的指令。(3)对指令进行判别,假如为多卡操作,则进入防抵触子程序;假如为单卡操作,则直接进行读卡、写卡、值操作和间断操作。(4)若操作成功,所得数据回传给上位机,一起驱动LCD显现操作成功信息;若操作失利,则驱动LCD显现操作失利信息。
2.2 防抵触程序
当读卡器对射频卡进行多卡操作时,在其天线掩盖范围内的一切射频卡将被激活,并处于辨认状况,造成了多张射频卡读写抵触。所以处理抵触是多卡操作的要害。ISO/IEC 18000-6 Type B协议详细规则了防抵触机制,其程序规划流程图如图5所示。该防抵触机制的原理是运用随机发生的0和1信号完结二进制树形查找,而且设定了成功指令,进一步提高了查找的功率,是一种二进制树形的防抵触算法[7]。详细完结进程为:首要,射频卡进入读卡器的作业范围,从离场掉电状况进入安排妥当状况。读卡器能够通过GroupSeleet指令和GroupUnseleet指令让读卡器作业范围内处于安排妥当状况的一切或部分的射频卡参加防抵触进程。针对该形式的防抵触机制,射频卡应该具有如下两种硬件电路:一个8 bit的计数器和一个0、1随机数发生器。当射频卡进入辨认状况(ID状况)后,将其内部的计数器清0,其间的一部分能够通过接纳GroupUnselect指令从头回到安排妥当状况,其他处于辨认状况的射频卡则进入了防抵触履行的进程中。被选中的射频卡开端下面的循环:(1)一切处于辨认状况而且内部计数器为0的射频卡将发送其辨认码;(2)假如有一个以上的射频卡发送辨认码时,读卡器将检测到抵触而发送Fail指令;(3)一切接纳到Fail指令而且内部计数器不等于0的射频卡将把自身的计数器加1;一切接纳到Fail指令而且内部计数器等于0的射频卡(即刚刚发送过应对的射频卡)将发生一个1或0的随机数。假如挑选了1,射频卡将把自己的计数器加1;假如挑选了0,射频卡将坚持计数器为0而且再次发送它们的辨认码。在接下来的进程中会呈现4种或许的状况;(4)状况1:假如有一个以上的射频卡发送,将重复进程(2);(5)状况2:假如一切的射频卡都随机挑选了1,读卡器将接纳不到应对,此刻,读卡器将会发送Success指令,一切的射频卡的计数器减1,然后计数器等于0的射频卡开端发送,接着重复进程(2);(6)假如只需一个射频卡发送而且它的辨认码被读卡器正确接纳,读卡器将发送包括辨认码的DataRead指令,射频卡正确接纳该条指令后将进入数据交换状况,开端发送它的数据。尔后,读卡器将发送Success指令,使处于辨认状况的射频卡的计数器减1;(7)状况3:假如只需一个射频卡的计数器等于0而且回来应对,重复进程(5)读卡器发Success指令或重复进程(6)发送DataRead指令;假如有一个以上的射频卡回来应对,重复进程(2);(8)状况4:假如只需一个射频卡回来应对,而且它的辨认码未被正确接纳,读卡器将发送一个Resend指令。假如辨认码被正确接纳,重复进程(5)。假如辨认码被重复几回的接纳(这个次数能够依据体系所期望的过错处理规范来设定),就假定有一个以上的射频卡在呼应,重复进程(2)。
通过如上的防抵触进程,射频场内的射频卡将能够逐一被辨认并进行数据交换。
2.3 串行通讯程序
体系运用PC机作为上位机,读卡器作为下位机。上位机与下位机之间的通讯选用依据RS-232-C的串口通讯。RS-232-C是一种串行通讯总线规范,是数据终端设备(DTE)和数据通讯设备(DCE)之间的接口规范,不同厂家出产的设备,只需它们都具有RS-232-C规范接口,则不需求任何转化电路,就能够相互插接起来。
串行通讯程序是MCU与PC机通讯的操控程序。发送程序选用查询的方法规划,即把待发送的数据先送到缓冲区中,然后查询串口发送间断标志是不是有空,若有空就发送下一个数据。
接纳程序选用间断的方法规划,即当PC机要发数据给MCU时,主意向MCU请求间断,接纳间断标志有用,则PC向MCU传送数据。
3 验证计划
3.1 验证渠道的树立
为了验证所规划的读卡器能否完结预期的功用,规划了相应的验证渠道[8]。验证渠道由数据解码通道、数据编码通道以及指令剖析器三部分组成。数据解码通道是对读卡器发送出的数据帧进行解码,提取指令的原始数据;指令剖析器是对收到的指令数据进行判别,一起回来相应的数据并发送给数据编码通道;数据编码通道则是对发送来的数据进行编码,再发送给读卡器。
渠道选用Verilog HDL硬件言语树立,选用Altera公司Cyclone系列的EP1C6Q240C8芯片为方针器材,运用Quartus II进行归纳验证,其结构框图和电路原理图别离如图6、图7所示。
3.2 测验成果剖析
(1)时序剖析
通过运转QuartusII 7.1自带的时序剖析器,能够得到时序剖析的一些参数:tsu(输入树立时刻)、tco(时钟到输出延时)、th(坚持时刻)别离为3.530 ns、13.174 ns、0.751 ns。基频时钟clk最大能够到达89.06 MHz,而ISO/IEC 18000-6 Type B协议规则的基频时钟为40 kHz。从剖析本体系的时序成果显现,完全符合协议要求。详细的时序剖析成果如图8所示。
(2)功用剖析
功用剖析以GROUP_SELECT_LT指令为例。 GROUP_SELECT_LT指令是多卡操作中的组选指令,射频卡接到此指令,卡内指定地址的数据与帧中供给的数据进行比照。若卡内数据较小,则回来射频卡的64 bit序列号,不然不作任何呼应。GROUP_SELECT_LT指令的指令号为03,地址设为0F,掩码设为FF,64 bit数据全设为F,所以从MCU传给FPGA的指令数据为03_0F_FF_FFFF_FFFF_FFFF_FFFF。原始数据通过FPGA数字信号处理模块处理后,就成了一帧基带数据信号。验证渠道将读卡器发来的数据帧进行解码,然后判别指令并回来射频卡的64 bit序列号,经编码后成一帧数据帧发送给读卡器。读卡器收到此帧后即解码,并进行CRC校验,若都没有错,则把解码后的数据传输给MCU。
GROUP_SELECT_LT指令仿真波形图如图9所示,试验证明可完结ISO/IEC 18000-6 Type B协议。
跟着RFID相关国际规范的建立(如ISO/IEC 18000)RFID的研制已成为国际性的课题。在许多RFID作业频段中,UHF频段的RFID技能远景最为看好,也成为如今RFID技能领域研讨的热门。