设为首页 | 成都一卡通
当前位置: 首页 > 一 卡 通 > 其他一卡通 >
其他一卡通
基于MF RC500的射频识别读写器设计
发布时间:2013-04-26 来源:未知
与传统的接触式IC卡、磁卡相比较,利用射频识别技术(radiofrequncyidentification)开发的非接触式IC识别器,在系统寿命、防监听、防解密等性能上具有很大的优势。利用MCU89C52、MFRC500、、Mifare卡等构建非接触式IC读写器,并在该读写器基础上能很容易地开发出适用于各方面的自动识别系统。 1MFRC500介绍MFRC500是应用于13.56MHz非接触式通信中高集成读卡IC系列中的一员。该读卡IC系列利用不错的的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。MFRC500支持ISO14443A所有的层,内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线(可达100mm);接收器部分提供一个坚固而有效的解调和解码电路,用于ISO14443兼容的应答器信号;数字部分处理ISO14443A帧和错误检测(奇偶&CRC)。此外,它还支持快速CRYPTO1加密算法,用于验证Mifare系列产品。方便的并行接口可直接连接到任何8位微处理器,给读卡器/终端的设计提供了极大的灵活性。2系统组成从图1可以看出,系统主要由MCU、时钟芯片、MFRC500、液晶屏、看门狗以及485通信模块组成。系统的工作方式主要是,先由MCU控制MFRC500驱动天线对Mifare卡,也就是应答器(PICC),进行读写操作。然后,根据所得的数据对其它接口器件,如液晶屏、EEPROM、时钟芯片等,进行响应操作。还不错后,与PC机之间进行通信,把数据传给上位机。MCU采用89C52,是因为89C52开发简单,运行稳定。EEPROM采用24C256,用于存储系统的数据。24C256是串口操作方式,是一种性价比较高的存储芯片。液晶屏采用带字库的ST7920,是因为它是并口操作方式的,操作方便。时钟芯片采用DS12C887。DS12C887是Dallas公司生产的新型产品,内置电池,可连续使用10年,可以方便记录事件的发生时间。为了防止系统“死机”,使用x5045作为看门狗。X5045是串口工作方式,内置EEPROM,可用来存储一些系统参数。与上位机的通信采用RS-485通信模块,通信距离可以达到1000m左右。整个系统由24V电源供电,再由稳压模块7805稳压成5V的电源。由于7805的工作热量很高,故在7805上安置一个散热片。3系统工作原理系统数据存储在无源Mifare卡,也就是PICC中。从图2可以看出,PCD的主要任务是传输能量给PICC,并建立与之的通信。PICC是由一个电子数据作载体,通常由单个微型芯片以及用作天线的大面积线圈等组成;而PCD产生高频的强电磁场,这种磁场穿过线圈横截面和线圈周围的空间。因为MFRC500提供的频率为13.56MHz,所以其波长比PCD的天线和PICC之间的距离大好多倍,可以把PICC到天线之间的电磁场当作简单的交变磁场来对待。PCD天线线圈发射磁场的一小部分磁力线穿过PICC的天线线圈,接着PICC的天线线圈和电容器C构成振荡回路,调频到PCD的发射频率。回路的谐振使PICC线圈的电压达到还不错大值,将其整流后作为数据载体(微型芯片)的电源。PICC启动之后,可与PCD之间进行数据通信。如上所述可以看出,PCD的性能与天线的参数有着直接的关系。在对天线的性能进行优化之后,PCD的读卡距离可以达到10cm。4PCD的天线设计由于MFRC500的频率是13.56MHz,属于短波段,因此可以采用小环天线。小环天线有方型、圆形、椭圆型、三角型等,本系统采用方型天线。天线的还不错大几何尺寸同工作波长之间没有一个严格的界限,一般定义为:L/λ≤1/(2π)(1)式(1)中,L是天线的还不错大尺寸,λ是工作波长。对于13.6MHz的系统来说,天线的还不错大尺寸在50cm左右。在天线设计中,品质因数Q是一个非常重要的参数。对于电感耦合式射频识别系统的PCD天线来说,较高品质因数的值会使天线线圈中的电流强度大些,由此改善对PICC的功率传送。品质因数的计算公式为:Q=(2πf0·Lcoil)/Rcoil(2)式(2)中的f0是工作频率,Lcoil是天线的尺寸,Rcoil是天线的半径。通过品质因数可以很容易计算出天线的带宽:B=f0/Q(3)从式(3)中可以看出,天线的传输带宽与品质因数成反比关系。因此,过高的品质因数会导致带宽缩小。从而减弱PCD的调制边带,会导致PCD无法与卡通信。一般系统的还不错佳品质因数为10~30,还不错大值不能超过60。5MFRC500与MCU89C52的部分接口电路图3为MFRC500与MCU的接口原理。由图3可以看出,本系统采用中断(INT1)工作模式,即MCU利用MFRC500提供中断信息对其进行控制。另外,根据系统的需要,可以采用查询方式对MFRC500进行操作。6对Mifarel卡操作流程整个系统的工作由对Mifare卡操作和系统后台处理两大部分组成。由于篇幅有限,本文只介绍对Mifare卡操作流程。Mifare卡的操作可以分为以下几项。(1)复位请求当一张Mifare卡片处在卡处读写器的天线的工作范围之内时,程序员控制读写器向卡片发出REQUESTall(或REQUESTstd)命令。卡片的ATR将启动,将卡片Block0中的卡片类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的较好的步通信联络。如果不进行得位请求操作,读写器对卡片的其它操作将不会进行。(2)反碰撞操作如果有多张Mifare卡片处在卡片读写器的天线的工作范围之内时,PCD将首先与每一张卡片进行通信,取得每一张卡片的系列号。由于每一张Mifare卡片都具有其的序列号,决不会相同,因此PCD根据卡片的序列号来保证一次只对一张卡操作。该操作PCD得到PICC的返回值为卡的序列号。(3)卡选择操作完成了上述二个步骤之后,PCD必须对卡片进行选择操作。执行操作后,返回卡上的SIZE字节。(4)认证操作经过上述三个步骤,在确认已经选择了一张卡片时,PCD在对卡进行读写操作之前,必须对卡片上已经设置的密码进行认证。如果匹配,才允许进一步的读写操作。(5)读写操作对卡的还不错后操作是读、写、增值、减值、存储和传送等操作。7读卡程序根据上面的流程,采用基于KeilC的C语言进行编程,程序如下:charM500Reset(void){charstatus;RC500RST=0;//RC500在RSTPD脚由高变低的时候复位delay_1ms(25);//注意延时的长度,本系统的晶振频率是11.0592MHzRC500RST=1;delay_50us(200);RC500RST=0;delay_50us(50);...returnstatus;}charM500Config(void)//对RC500的寄存器进行初始化charM500PiccCommonRequest(unsignedcharreq_code,unsignedchar*atq)//RC500发送请求。req_code是请求模式,一共有requestall和Requeststd两种模式。Requestall指令是非连续性的读卡指令,只读一次。但有个例外,当某一次Requestall指令读卡片失败时,例如,卡片没能通过密码认证或其它原因而出错时,Requestall指令将连续地读卡,直到读卡成功才进入非连续性的读卡模式。Requeststd指令的使用和Requestall指令刚巧相反。Requeststd指令是连续性的读卡指令。当某一张卡片在MCM之天线的有效的工作范围(距离)内,Requeststd指令在成功地读取这一张卡片之后,进入MCM对卡片的其它操作。如果其它操作完成之后,程序员又将MCM进入Requeststd指令操作,则Requeststd指令将连续地再次进行读卡操作,而不管这些片卡是否被拿卡。只要有一张卡片进入MCM之天线的有效的工作范围(范围)内,Requeststd指令将始终连续地再次进行读卡操作。对于Mifare1卡,该函数反回值为0004H。charM500PiccCascAnticoll(unsignedcharbcnt,unsignedchar*snr)//反碰撞函数,得到一张卡的序列号//存入snr中charM500PiccCascSelect(unsignedchar*snr,unsignedchar*sak)//选中snr指定的卡,对于Mifarel卡返回值为0008H,值存入sak中charM500PiccAuthKey(unsignedcharauth_mode,unsignedchar*snr,unsignedchar*keys,unsignedcharblock)//这是三轮认证函数,整个过程包括:先将所要访问的区密码加密(如区0的初始密码为6个FFH),再将加密后的密码通过Loadkey存入MFRC500的Key缓存中,接着进行认证。CharM500PiccRead(unsignedcharaddr,unsignedchar*_data)//还不错后读卡,读到的数据存入_data中结语本文主要介绍一种基于MFRC500的射频识别读写器的设计方法。试验证明系统运行稳定,在此读写器的基础上,只要稍加屐就能开发成不同的射频识别应用系统,如考勤系统、门禁系统、公交车收费系统等。