首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年10月17日星期四
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
非接触式IC卡读写模块的应用开发
Developing and Application of the Contactless IC Card R/W Module

山东在学控制科学与工程学院 张俊杰 乔谊正



摘要:本文介绍了PHILIPS公司的MF1ICS50非接触式IC卡的内部结构、工作原理及基于基站芯片MFRC500的嵌入式读写模块的软硬件设计。

关键词:IC卡;非接触式;嵌入式MF1卡RC500


引言

近几年来,随着IC卡中非接触式射频卡的高度安全保密性、使用简单等特点,使之在各领域的应用中异军突起,成为当今IC智能卡中的流行宠物,应用前景十分广阔。我们在深入了解了PHILIPS公司的MF1ICS50非接触式IC卡和读卡设备的核心模块MFRC500的工作原理后,开发出了MF1卡读写模块。本读写模块能完成对MF1卡所有读写及控制操作,并且还可以方便的嵌入到其他系统(如:考勤,门禁)中,受控于主控模块,成为用户系统的一部分。用户利用本模块可以方便的构成自己的智能卡应用产品。


内部结构及工作原理

MF1卡系统的核心是PHILIPS公司的MIFARE1ICS50系列晶片,该技术已定为国际标准:ISO/IEC14443TYPEA。目前许多较大的IC卡卡片制造商均以MIFARE技术为标准。

MF1卡中包含一块ASIC微晶片和一个高频天线,其基本工作原理是:读写器中的MIFARE基站向MIFARE卡发一组固定频率(13.56MHz)的电磁波,卡片内有一个LC串联谐振电路,其频率与基站发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,使卡片内具有电荷,当所积累的电荷达到2V时,卡片中芯片将卡内数据发射出去或接收基站对卡片的操作。

MF1的框图如图1,整个卡片包含了两个部分,RF射频接口电路和数字电路部分。

图1 MF11CS50的组成框图(略)


RF射频接口电路

在RF射频接口电路中,主要包括有波形转换模块。它可将卡片读写器上的13.56MHz的无线电调制频率接收,一方面送调制/解调模块,另一方面进行波形转换,将正弦波转换为方波,然后对其整流滤波,由电压调节模块对电压进行进一步的处理,包括稳压等,最终将输出电压供给卡片上的各电路。


在数字电路部分模块中

ATR模块

当一张MF1卡片处在卡片读写器的天线工作范围之内时,程序员控制读写器向卡片发出RequestAll(或RequestStd)命令后,卡片的ATR将启动,将卡片Block0中的卡片类型(TagType)号,共2个字节传送给读写器,建立卡片与读写器的第一步通信联络。如果不进行第一步的ATR工作,读写器对卡片的其他操作(Read/Write等)将不会进行。卡片的类型(TagType)号共2个字节,可能为:0004H。

AntiCollision模块

如果有多张MF1卡片处在卡片读写器天线的工作范围之内,AntiCollision模块的防重叠功能将启动工作。在程序员控制下的卡片读写器将会首先与每一张卡片进行通信,取得每一张卡片的序列号。卡片读写器中的AntiCollision防重叠功能配合卡片上的防重叠功能模块,由程序员来控制读写器,根据卡片的序列号来选定一张卡片。被选中的卡片将直接与读写器进行数据交换,未被选择的卡片处于等待状态,随时准备与卡片读写器进行通信。AntiCollision模块(防重叠功能)启动工作时,卡片读写器将得到卡片的序列号。序列号存储在卡片的Block0中,共有5个字节,实际有用的为4个字节,另一个字节为序列号的校验字节。序列号中实际有用的4个字节,可能为:773B72A9。

Select Application 模块

当卡片与读写器完成了上述的二个步骤,程序员控制的读写器要想对卡片进行读写操作,必须对卡片进行"Select"操作,使卡片真正地被选中。被选中的卡片将卡片上存储在Block0中的卡片容量"Size"字节传送给读写器。当读写器收到这一字节后,即可对卡片进行深一步的操作。例如,可以进行密码验证等。读写器收到的"Size"字节可能为:88H。

认证及存取控制模块


经过上述三个步骤,确认已经选择了一张卡片时,程序员对卡片进行读写操作之前,必须对卡片上已经设置的密码进行三级认证,如果匹配,则允许进一步的Read/Write操作。MF1卡片上有16个扇区,每个扇区都可分别设置各自的密码,互不干涉。因此每个扇区可独立地应用于一个应用场合。整个卡片可以设计成"一卡通"形式来应用。

控制及算术运算单元

这一单元是整个卡片的控制中心,是卡片的"头脑"。它主要进行对整个卡片的各个单位进行微操作控制,协调卡片的各个步骤;同时它还对各种收/发的数据进行算术运算处理,递增/递减处理,CRC运算处理等,是卡片中内建的中央微处理机(MCU)单元。

数据加密单元

该单元完成对数据的加密处理及密码保护。

存储器及其接口电路


该单元主要用于存储数据,EEPROM中的数据在卡片失掉电源后(卡片离开读写器天线的有效工作范围内)仍将保持,用户所要存储的数据存放在该单元中。MF1卡片中的这一单元容量为8196bit(1Kbyte),分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63)。第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。

每个扇区的块0、块1、块2为数据块,可用于存贮数据。每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:
每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。

存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的。三个控制位以正和反两种形式存储于存取控制字节中,决定了该块的访问权限(如:进行减值操作必须验证KEYA,进行加值操作必须验证KEYB,等等)。


读写模块的结构及工作原理


模块的核心部份包括一个控制用微处理器和一个MIFARE基站芯片。它能独立完成对MIFARE卡的所有操作,还具有与用户主系统的串行通信能力,可根据用户系统的命令完成对MIFARE卡的读写操作,并将所得数据返回给用户系统。这个用户系统可以是一个主控板或PC机。

模块硬件主要由中央微处理器(89C52)、MIFARE基站芯片、高频电路、模块天线、RS232通信电路、复位电路、LED状态显示和喇叭驱动电路等组成。

写模块的核心是PHILIPS公司生产的读写卡专用芯片MFRC500。RC500符合ISO14443A,外接天线后读卡距离可达到10cm。RC500与CPU接口非常简单,上电或复位后能自动监测与CPU的接口方式,我们采用地址数据总线复用方式。具体见原理图4。

图3 硬件结构框(略)
图4 CPU与RC500接口电路原理图(略)

RC500内部有8个寄存器页,每页有8个寄存器,每个寄存器有8位数据。这些寄存器可统一编址(在我们的系统中为0x00--0x3F),CPU将这些寄存器作为外部RAM进行操作。例如,CPU需要让RC500执行某个命令(如:Transmit)时,把此命令的代码(0x1a)写入Command寄存器可以了。

RC500与卡片的通信是通过天线发送一些指令代码来完成,并且要按照特定的通讯流程,具体的通信流程如下图:
CPU对卡片的操作不是简单的一条指令所能完成的,其中必须有对RC500硬件内部寄存器的设置。例如对卡片进行读(READ)操作,程序员必须对RC500内部的BitPhase、Rxthreshold、TimerControl、InterruptEn、InterruptRq等寄存器进行配置,还要读PrimaryStatus、SecondaryStatus等寄存器的状态,对最终读得的数据还必须进行校验。一般的操作步骤如下:寄存器初始化,把要发送的数据(如:Read=0x30)放到RC500内部的FIFO(先入先出)寄存器中,然后把命令代码(如;Transceive=0x1e)写到Command寄存器。RC500便会执行命令,按照特定格式把数据发出去,然后等待卡片返回的数据(也放到FIFO中),CPU从FIFO中读走数据,完成操作。

在读写模块主程序中,标准配置以RS232方式与主控模块进行通信。一条指令包括命令码、命令块长度、命令块、异或校验几部分。主程序运行时循环等待主控模块的指令,有指令收到,便跳出循环执行该指令。这样即使用户不清楚MFRC500和MF1卡的工作原理,也可将读写模块方便的嵌入到自己的系统中。

图5 RC500与MF1卡的通信流程图(略)

此外,我们还根据用户需要有ABA,WIG26等其它串行输出方式。

读写模块应用实例

该读写模块已经成功的应用到山东浪潮瀚海电子公司开发的考勤、门禁、售饭等系统中。与磁卡、只读射频卡(EM卡)组成的系统相比,系统性能大大改善,并且为"一卡通"的实现提供了必备条件。图6为一个典型的网络门禁控制系统。

图6 MF1卡读写模块在门禁系统的应用(略)


结束语

IC卡以其高度的信息集成及安全性已经融入当今信息技术的主流,越来越受到人们的青睐。本文介绍了PHILIPS公司的MFICS50非接触式IC卡的内部结构和工作原理,以及基于MFRC500的嵌入式读写模块的软硬件设计。此读写模块的使用使复杂的IC卡技术变得非常简单,对非接触式智能卡的推广有重要意义。

         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com