阅读新闻

基于MF RC500的Mifare射频卡读写器设计

发布日期:2019-07-31 07:06   来源:未知   阅读:

  介绍基于MF RC500读写卡芯片和STC89C52RC型单片机实现的Mifarel射频卡读写器的设计方法。对其系统硬件设计进行分析。并给出对Mifarel卡操作流程。

  射频识别(RadioFrequencyIdentification。以下简称RFID[1]技术,是利用无线射频方式进行非接触双向通信并交换数据,以达到识别目的。与传统的条码或磁条识别技术相比,RnD技术具有非接触、精度高、作用距离远、可动态识别多个数据及应用环境适应性较好等优点。在工业自动化、仓储管理、门禁控制等众多领域得到广泛的应用与发展。本文基于MFRC500设计了RFID技术的Mifarel卡读写器。该读写器能完成对Mifarel卡的读、写及控制操作。具有响应速度快、读卡距离远、通信稳定等优点。

  射频卡属于非接触IC卡,它避免了普通IC卡与读卡器之间的物理接触,减少了卡的磨损。识别工作无须人工干预。可工作于各种恶劣环境。当前世界上非接触式IC智能射频卡的核心是Philips公司的Mi.fare1ICs5o(一01,一02,一03,一04)系列微模块。已被定制为国际标准:ISO/IEC14443TYPEA标准。目前。许多较大的IC卡制造商的非接触式卡制造均以Mifare技术为标准。Mifarel卡上有8KbEEPROM存储容量。并划分为16个扇区。每个扇区划分为4个数据存储块。

  各扇区的密码和存取控制都是独立的。可以根据实际需要设定各自的密码及存取控制。因此一张卡能同时运用在16个不同的系统中。并可以根据每个系统的实际情况决定各区的密码及数据形式。Mifarel卡上具有先进的数据通信加密并双向验证密码系统。具有防重叠功能。能在同一时间内处理重叠在读写器天线的有效工作距离内的多张重叠的卡片。卡片上还内建有增值、减值的专项数学运算电路。非常适合公交、地铁等行业的检票、收票系统。卡片上的数据读写可超过10万次以上,数据保存期可达1O年以上。且卡片抗静电保护能力可达2kV以上。

  Mifare1卡中包含一块ASIC微晶片和一个高频天线,卡片上无源(无电池)。其基本工作原理是:读写器中的Mifare基站向Mifarel卡发一组固定频率(13.56MHz)的电磁波,卡片内有一个LC串联谐振电路。其频率与基站发射的频率相同。在电磁波的激励下,LC谐振电路产生共振,使卡片内具有电荷,当所积累的电荷达到2V时。卡片中芯片将卡内数据发射出去或接收基站对卡片的操作。射频卡的标准操作距离为lOOmm,与卡片读写器的通信速率高达106Kb/s。

  MFRC5o0是应用于13.56MHz非接触式通信中高集成射频识别系统中的一员。该系统利用先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。MFRC5o0支持ISO14443A所有的层,内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线mm);接收器部分提供一个坚固有效的解调和解码电路.用于ISO14443兼容的应答器信号;数字部分处理ISO14443A帧和错误检测(奇偶与CRC)。此外,它还支持快速CRYPTO1加密算法,用于验证Mi.fare卡系列产品。方便的并行接口可直接连接到任何8位微处理器.为读卡器或终端的设计提供了极大的灵活性。

  基于MFRC500的RFID技术Mifare卡读写器系统,其系统结构框图如图1所示。

  620)this.style.width=620; border=0>

  620)this.style.width=620; border=0

  硬件主要由STC89C52RC单片机、MFRC500、以及232通信等接口模块组成。读卡器用sTC89C52RC单片机作主控制器.单片机控制MFRC500驱动天线对Mifare卡进行读写操作。74HC595作显示驱动器驱动LED数码显示器,PS/2总线作为通用编码键盘接口,键盘与LED显示器作为人机交互接口.MAX232作串口信号转换。由于主控芯片STC89C52RC有8K的FLASH.并且内含2K的EEPROM,可方便反复擦写、修改程序。同时,由于外部不用扩展程序存储器,可以简化电路设计.减小读卡器的尺寸.同时有较多的I/O口提供给系统使用。

  读写器电路是由STC89C52RC型单片机控制专用读写芯片(MFRC500)组成。系统的工作方式是先由MCU控制MFRC500驱动天线对Mifare卡进行读写操作,然后与PC通信,把数据传给上位机。其主要原理如图2~图5所示。

  读写模块MFRC500是整个读写器的核心,它完成读写Mifare卡的所有必需功能,包括RF信号的产生、调制、解调、安全认证和防重叠等。作为单片机与射频卡通讯的中介,MFRC500与Mifarel卡由射频场来建立无线链接并完成数据交换。其原理如图2所示。

  620)this.style.width=620; border=0>

  620)this.style.width=620; border=0

  MCU是通过对读写模块MFRC500内核特殊的内存寄存器的读写来控制MFRC500。MFRC500射频模块的DO—D7(数据端口1和单片机数据端口P0口直接连接进行数据传送,中断请求口IRQ和单片机的中断0fINT0)连接,即单片机利用MFRC500提供中断信息对其进行控制。读写器的控制单片机原理如图3所示。

  620)this.style.width=620; border=0>

  620)this.style.width=620; border=0

  620)this.style.width=620; border=0>

  620)this.style.width=620; border=0

  MFRC500通过TX1和TX2提供13.56MHz的能量载波驱动天线。根据寄存器的设定对发送数据进行调制来得到发送的信号。Mifarel卡采用RF场的负载调制进行响应。

  读写器与上位机的通信采用RS一232方式。单片机STC89C52RC与PC串口电平不匹配,使用MAX232型电平转换器进行电平转换。接口电路如图5所示。

  620)this.style.width=620; border=0>

  620)this.style.width=620; border=0

  设计思想:当有Mifare1射频卡进入距离射频天线ram内,读卡器就可以读到卡中的数据。系统单片机要将所读数据进行分析处理,如果符合条件,则读卡成功指示灯闪一下,蜂呜器呜叫一声。并将卡片数据与当前时间一起存入单片机内的EEPROM.并在LED显示器上显示卡数据。没有卡进入读卡器工作范围时,在显示器上显示当前时间。若读卡出错,显示出错标志。在与上位机通讯时。将单片机内部EEPROM存入的信息发往上位机。

  单片机程序包括以下几个部分:读写器按键处理程序、读写卡程序、数据存储程序、与上位机的通讯程序、显示驱动程序、时基生成程序。以下重点介绍读写卡程序的设计。

  读写卡过程包括装载密码、询卡、防冲突、选卡、验证密码、读写卡和停卡。这一系列操作必须按固定的顺序进行。在没有射频卡进入射频天线位显示当前时钟;当有射频卡进入到射频天线的有效范围,读卡程序验证卡及密码成功后.将卡号和读卡时间及相关数据作为一条记录存入EEP—ROM存储器中,并在LED显示器高5位上显示卡号。

  (1)询卡过程:当一张Mifare卡处在卡读写器的天线工作范围之内时。MCU将通过MFRC500发送一个询卡请求,询卡请求有两种,一种是requestall,这指令是非连续性的读卡指令,只读一次;另一种是re—queststd,这是连续性的读卡指令。当卡片收到该指令后,卡片内的ATR将启动.并将卡片的Block0中的卡片类型(TagType)号共2个字节传送给读卡器,从而建立卡片与读卡器的第一步通信联络.完成询卡过程。

  (2)防冲突:如果有多张Mifare卡片处在卡片读写器的天线工作范围之内.MFRC500能检测出来并通知到MCU。此时MCU通过防冲突算法来与每一张卡进行通讯。由于每一张Mifare卡片都具有其唯一的序列号而决不会相同,因此,MCU根据卡片的序列号来保证一次只对一张卡进行操作。(根据ISO14443协议,M1型卡传统的防冲突算法是动态二进制检索树算法。它首先利用MANCHESTER编码“没有变化”的状态来检测碰撞位,然后把碰撞位设为二进制“1”,用SELECT命令发送碰撞前接收的部分卡片序列号和碰撞位,如果卡片开头部分序列号与其相同,则做出应答,不相同则没有响应。以此来缩小卡片范围,最终达到无碰撞)。

  (3)选卡:通过以上两步以后,MCU选取一张卡的序列号进行通讯,即选卡。

  (4)验证密码:选定要处理的卡片之后,MCU确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,必须进行另一扇区密码校验。)

  (6)停卡:当一系列的操作完成后,MCU发送一个停卡命令给卡片,使其退出工作。

  在非接触通讯中,为了保证读写器和卡片之间数据传递完整、可靠,采取以下措施:一是防冲突算法,二是通过16位CRC纠错,三是检查每字节的奇偶校验位,四是检查位数,五是用编码方式来区分“1”、“O”或无信息[2]。

  为提高处理和响应速度,程序设计采用单片机汇编语言和C语言混合编程。中断服务程序采用汇编语言编写.其它程序采用C语言编写。主程序流程图如图6所示。

  620)this.style.width=620; border=0>

  620)this.style.width=620; border=0

  本文设计了基于MFRC500的Mifarel射频卡嵌入式读写器。经实践验证.本系统能对范围内的多个卡准确无误地读写。在此读写器的基础上,稍加修改就能开发成不同的射频识别应用系统,对RFID的推广具有一定的实用价值。

  [1]游战清,李苏建.无线射频识别技术(RFID)理论与应用[M].北京:电子工业出版社。2004.

  [3]徐新民,张春升.TEMIC系列射频卡及其应用叨.电测与仪表,2002,(1):49—52.

  李和平(1971一),男,汉族,娄底职业技术学院电子学讲师,高级技师,湖南大学电气与信息工程学院硕士研究生。主要研究方向为电子技术应用。Email:

  黎福海(1964一),男,汉族,湖南大学电气与信息工程学院教授,目前研究领域为数字信号处理和集成电路。1