高性价比的MIFARE卡读写模块的设计
文章出处:http://www.nexussmartsolutions.com 作者:微计算机信息 人气: 发表时间:2011年09月18日
在IC卡读写机具领域中,可以降低成本的部分主要是读写机具的核心---读写模块。接触式IC卡由于卡座与卡上芯片接触点易磨损,而且不耐脏、不防水、易腐蚀,等缺点正逐渐被非接触式IC卡所替代。非接触式IC卡是根据射频电磁感应原理产生的,它的读写操作只需将卡片放在读写器附近一定的距离之内就能实现数据交换,无需任何接触,使用中非常方便、快捷,不易损坏,因此,在公交、门禁、校园、企事业人事管理、娱乐场所等方面得到广泛的应用[2]。非接触IC卡又有高频与低频之分,由于低频信号很容易受外部信号干扰,经常会读错卡号或将卡写成零。高频卡则不易受外界干扰,读写稳定性要远远高于低频卡,但高频读写模块的价格也高于低频卡。PHILIPS公司的Mifare卡是国内使用较为广泛的一种高频卡,但PHILIPS进口原装的Mifare卡读写模块价格昂贵,使得读写机具造价具高不下。笔者使用MF RC500芯片如自行开发的Mifare卡读写模块其性能与进口模块相当,成本却远远低于进口模块。
一、基于MF RC500开发的高性价比的Mifare卡读写模块
MF RC500主要应用于13.56MHz非接触式IC卡的读写。该芯片利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。MF RC500支持ISO14443A(13.56MHz 电子标签标准)所有的层。内部的发送器部分不需要增加有源电路就能够直接驱动操作近距离的天线(可达10cm)。接收器部分提供一个可靠而有效的解调和解码电路,用于ISO14443A兼容的应答器信号。 数字部分处理ISO14443A帧和错误检测。此外,它还支持快速CRYPTO1加密算法用于验证MIFARE系列产品。方便的并行接口可直接连接到任何8位微处理器,这样给读卡器/终端的设计提供了极大的灵活性。图2给出了MFRC500的外围电路的原理图。
二、MF RC500各引脚功能简介
1、振荡器
名 称 |
类 型 |
功 能 |
OSCIN |
输入 |
晶振输入端 |
OSCOUT |
输出 |
晶振输出端 |
MFRC500的1脚OSCIN和2脚OSCOUT分别为晶振输入端和晶振输出端。13.56MHz晶振通过快速片内缓冲区连接到OSCIN和OSCOUT。如果器件采用外部时钟,可从OSCIN输入。
2、天线
非接触式天线使用以下4个管脚:
名 称 |
类 型 |
功 能 |
TX1, TX2 |
输出缓冲 |
天线驱动器 |
VMID |
模拟 |
参考电压 |
RX |
输入模拟 |
天线输入信号 |
为了驱动天线,MF RC500通过TX1和TX2提供13.56MHz的能量载波。根据寄存器的设定对发送数据进行调制得到发送的信号。该卡采用RF场的负载调制进行响应。天线拾取的信号经过天线匹配电路送到RX脚。MF RC500内部接收器对信号进行检测和解调并根据寄存器的设定进行处理。然后数据发送到并行接口由微控制器进行读取。天线部分电路图如(图3)。
3、电源
器件MF RC500对各部分使用单独电源供电,以实现在EMC特性和信号解耦方面达到最佳性能。MF RC500具有出色的RF性能并且模拟和数字部分可适应不同的操作电压。
名 称 |
类 型 |
功 能 |
TVDD |
电源 |
发送器电源电压 |
VSS |
电源 |
发送器电源地 |
AVDD |
电源 |
模拟部分电源电压 |
AGND |
电源 |
模拟部分电源地 |
DVDD |
电源 |
数字部分电源电压 |
DVSS |
电源 |
数字部分电源地 |
4、辅助管脚 MF RC500的第27脚AUX为辅助管脚可选择内部信号驱动该管脚。它可作为设计和测试之用。
5、复位管脚 RSTPD为复位管脚,该管脚禁止了内部电流源和时钟并使MF RC500从微控制器总线接口脱开。如果RST释放,MF RC500则执行上电时序。
6、串行信号开关串行信号
开关用于桥接芯片数字电路和模拟电路两部分,两部分电路的输入/ 输出和外部应用所需的输入/ 输出可以灵活组合。这种组合可借助MFIN和MFOUT引脚和MF RC500内部相关寄存器来控制实现.。
名 称 |
类 型 |
功 能 |
MFIN |
带施密特触发器的输入 |
MIFARE接口输入 |
MFOUT |
输出 |
MIFARE接口输出 |
7、并行接口
下面列出的16个管脚用于控制并行接口:
名 称 |
类 型 |
功 能 |
D0 … D7 |
带施密特触发器的I/O |
双向数据总线 |
A0 … A2 |
带施密特触发器的I/O |
地址线 |
NWR/RNW |
带施密特触发器的I/O |
写禁止/只读 |
NRD/NDS |
带施密特触发器的I/O |
读禁止/数据选通禁止 |
NCS |
带施密特触发器的I/O |
片选禁止 |
ALE |
带施密特触发器的I/O |
地址锁存使能 |
IRQ |
输出 |
中断请求 |
三、MF RC500与89C51的接口电路如(图4):
MF RC500支持不同的微控制器接口。一个智能的自动检测逻辑可以自动适应系统总线的并行接口。使用信号NCS选择芯片。要使用独立的地址和数据总线与微控制器相连,必须将ALE脚连接到DVDD。若使用复用的地址和数据总线与微控制器接口,必须将ALE脚连接到微控制器的ALE信号。 若要使用RNW和NDS(取代NWR和NRD)与微控制器相连,微控制器的RNW必须连接到管脚NWR,而NDS必须连接到NRD。由图4可以看出,本系统采用中断(INT1)工作模式,即MCU 利用MF RC500提供中断信息对其进行控制。另外,根据系统的需要,可以采用查询方式对MF RC500 进行操作。对Mifare卡操作流程由以下几个部分组成:
1、复位请求
扇区号 |
块号 |
内容 |
块地址 |
扇区0 |
0块 |
厂商代码 |
0 |
|
1块 |
数据(16字节) |
1 |
|
2块 |
数据(16字节) |
2 |
|
3块 |
密码区 |
3 |
扇区1 |
0块 |
数据(16字节) |
4 |
|
1块 |
数据(16字节) |
5 |
|
2块 |
数据(16字节) |
6 |
|
3块 |
密码区 |
7 |
. |
|
: : : |
|
扇区15 |
0块 |
数据(16字节) |
60 |
|
1块 |
数据(16字节) |
61 |
|
2块 |
数据(16字节) |
62 |
|
3块 |
密码区 |
63 |
当一张Mifare卡片处在卡处读写器的天线的工作范围之内时,程序员控制读写器向卡片发出复位命令。卡片接收到后,将0区0块中的厂商代码(作为不同卡型的区分)送给读写端Mifare卡(以M1卡为例)内存储结构如下表[5]。建立卡片与读写器的第一步通信联络。
2.反碰撞操作如果有多张Mifare卡片处在卡片读写器的天线的工作范围之内时,模块将首先与每一张卡片进行通信,取得每一张卡片的系列号。由于每一张Mifare卡片都具有其唯一的序列号,决不会相同,因此根据卡片的序列号来保证一次只对一张卡操作。
3、卡选择操作完成了上述二个步骤之后,读写模块必须对卡片进行选择操作。既与被选中的卡进行一次数据交换,当某卡被选中后该卡则将其数据容量传送给读写端。
4、认证操作经过上述三个步骤,在确认已经选择了一张卡片时,由程序控制模块在对卡进行读写操作之前,必须对卡片上已经设置的密码进行认证,Mifare 类产品中加密算法的实现被称之为CRYPT01 , 它是一种密钥长度为48bit 的流密码。要访问一个Mifare 类卡的数据, 首先要完成认证。如果匹配,才允许进一步的读写操作。
5、读写操作对卡的最后操作是读、写、增值、减值、存储和传送等操作。