基于FPGA的915MHz射频读卡器设计
射频识别(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显示操作失败信息。
- FPGA验证技术在航空电子领域的应用(09-13)
- MIMO 系统的快速原型设计与验证(04-28)
- 基于FPGA的多按键状态识别系统设计(08-15)
- ARM、DSP、FPGA的技术特点和区别(01-22)
- 3G移动通信中脉冲成形FIR滤波器的ASIC实现结构(01-24)
- 应用EDA仿真技术解决FPGA设计开发中故障的方法 (03-01)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...