近几年来.IC卡中非接触式射频卡的高度安全保密性和使用简单等特点,使之在各领域的应用中异军突起,成为当今IC智能卡中的流行宠物,应用前景十分广阔。与传统的接触式IC卡、磁卡相比,利用射频识别技术(radio fequncy identification)开发的非接触式IC识别器,无论在系统寿命、防监听、防解密等性能上都具有很大的优势。为此,本文给出了利用AT89C52、MFRC500、Mifare卡来构建非接触式IC读写器,并在该读写器基础上开发适用各方面自动识别系统1 MF RC500的主要特性
MF RC500是应用于13.56 MHz非接触式通信中高集成读卡器IC系列中的一员。该读卡IC利用先进的调制和解调概念.完全集成了13.56 MHz下所有类型的被动非接触式通信方式和协议。MF RC500能够支持ISO14443A所有的层,其内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线(可达100 mm);MFRC500的接收器部分提供有一个坚固而有效的解调和解码电路,可用于IS014443兼容的应答器信号;数字部分则用于处理ISO1443A帧和错误检测(奇偶&CRC)。此外,它还支持快速CRYPTO1加密算法,以用于验证Mifare系列产品。其方便的并行接口可直接连接到任何8位微处理器上,这样就给读卡器/终端的设计提供了极大的灵活性。
MF RC500的主要特点如下:
- 带有高集成度模拟电路以用于卡应答的解调和解码;
- 缓冲输出驱动器可使用最少数目的外部元件以连接到天线;
- 近距离操作(可达100 mm); .
- 有用于连接13.56 MHz石英晶体的快速内部振荡器缓冲区;
- 带低功耗的硬件复位功能;
- 并行微处理器接口带有内部地址锁存和IRQ线;
- 有易用的发送和接收FIFO缓冲区;
- 支持MIFARE Clasic;
- 支持MIRFARE有源天线;
- 适合高安全性的终端。
MF RC500采用SO32封装的管脚配置如图1所示。
2 IC卡系统组成
图2所示是基于MF RC500的非接触式IC卡读写器的系统结构框图。该系统主要由MCU、MFRC500、看门狗以及232通信模块组成。系统的工作方式是先由MCU控制MF RC500驱动天线对Mifare卡(也就是应答器PICC)进行读写操作。然后,根据所得的数据对其它接口器件进行响应操作。最后,与PC机之间进行通信,并把数据传给上位机。
系统MCU选用AT89C52主要是因为AT89C52开发简单,运行稳定。为了防止系统“死机”,系统中使用X5045作为看门狗。由于此系统的通讯距离要求不是太远,故采用RS232通讯模块与PC机进行通讯。
3 天线的设计
由于MF RC500的频率是13.56 MHz,属于短波段,因此可以采用小环天线。小环天线有方形、圆形、椭圆形、三角形等,本系统采用方形设计。其天线示意图如图3所示。
该天线的最大几何尺寸同工作波长之间没有一个严格的界限。对于13.6 MHz的系统来说,天线的最大尺寸在50 cm左右。
在天线设计中,品质因数Q是一个非常重要的参数。对于电感耦合式射频识别系统的PCD天线来说,较高品质因数会使天线线圈中的电流强度大些,由此可改善对PICC的功率传送。若以f0表示工作频率,那么通过品质因数就可以很容易计算出天线的带宽:
B=f0/Q (1)
从式(1)中可以看出,天线的传输带宽与品质因数成反比。因此,过高的品质因数会导致带宽缩小。从而减弱PCD的调制边带.这样可能导致PCD无法与卡通信。因此,一般系统的最佳品质因数应为10-30,最大不能超过60。
4 MF RC500与AT89S52的接口电路
图4为MFRC500与AT89S52的接口电路,图5为AT89S52与RS232接口电路。
5 对Mifare卡的操作流程
整个系统的工作由对Mifare卡操作和系统后台处理两大部分组成。本文只介绍对Mifare卡的操作流程。Mifare卡的操作可以分为以下几项:
1)复位请求
当一张Mifare卡片处在卡读写器的天线工作范围之内时,程序员控制读写器向卡片发出REQUEST all(或REQUEST std)命令。此时卡片的ATR将启动,并将卡片Block 0中的卡片类型(TagType)号共2个字节传送给读写器,从而建立卡片与读写器的第一步通信联络。
如果不进行该位请求操作,读写器对卡片的其它操作将不能进行。
2)反碰撞操作
如果有多张Mifare卡片处在卡片读写器的天线工作范围之内,PCD将首先与每一张卡片进行通信,以取得每一张卡片的系列号。由于每一张Mifare卡片都具有其唯一的序列号而决不会相同,因此.PCD根据卡片的序列号来保证一次只对一张卡进行操作。该操作将使PCD得到PICC的返回值作为卡的序列号。
3)卡选择操作
完成了上述二个步骤之后,PCD必须对卡片进行选择操作。执行该操作后,将返回卡上的SIZE字节。
4)认证操作
经过前面叙述的三个步骤以后,便可以在确认已经选择了一张卡片时,在PCD对卡进行读写操作之前,使系统对该卡片上已经设置的密码进行认证。如果该认证匹配,便可允许进一步的读写操作。
5)读写操作
对卡的最后操作即是读、写、增值、减值、存储和传送等操作。
6 读卡程序
根据上面的流程,便可采用基于Keil C的C语言进行编程,程序如下: