"); //-->
IC卡按卡与外界数据传送的形式不同,分为接触式IC卡和非接触式IC卡。接触式IC卡通过8个触点从读写器获取能量和交换数据;非接触式IC卡通过射频感应从读写器获取能量和交换数据,所以非接触式IC卡又叫射频卡。
1 引言
IC卡按卡与外界数据传送的形式不同,分为接触式IC卡和非接触式IC卡。接触式IC卡通过8个触点从读写器获取能量和交换数据;非接触式IC卡通过射频感应从读写器获取能量和交换数据,所以非接触式IC卡又叫射频卡。现在常见的是接触式IC卡,这类卡的读写操作速度较慢,操作也不方便,每次读写时必须把卡正确地插入到读写器的口槽才能完成数据交换。这样,在公交、考勤等需要频繁读写卡的场合就很不方便,而且IC卡的触点暴露在外,容易损坏和搞脏而造成接触不良。非接触式IC卡是根据电磁感应原理产生的。它的读写操作只需将卡片放在读写器附近一定的距离之内就能实现数据交换,无需任何接触,使用非常方便、快捷,不易损坏。因此,在公交、门禁、校园、企事业人事管理等方面有广泛的应用前景。目前我国引进的射频IC卡主要有PHILIPS公司的Mifare卡和ATMEL公司的Temic卡[1]。而PHILIPS公司的Mifare卡现在是市场的主流产品,应用越来越广。其典型型号为Mifare1 S50,它有1K字节E2PROM用于存放数据,分成16个区,每个区都有自己独立的密码,完善的安全机制使之具有一卡多用的特性。
Mifare卡是一种智能卡(smart card),内建有中央微处理机(MCU)和ASIC等,使卡在安全保密性、认证逻辑、算术运算等微操作控制有序进行。 Mifare卡读写器的设计一般用PHILIPS公司生产的读写模块MCM200或MCM500。随着技术的进步,PHILIPS公司现在生产了功能及性能更好的读卡芯片,我们就是以这种芯片为基础来设计和开发Mifare射频卡读写器。
2 工作原理
射频IC卡读写器以射频识别技术为核心,读写器内主要使用了1片Mifare卡专用的读写处理芯片(MF RC500)。它是一个小型的最大操作距离达100mm的Mifare读/写设备的核心器件,其功能包括调制、解调、产生射频信号、安全管理和防碰撞机制。内部结构分为射频区和接口区:射频区内含调制解调器和电源供电电路,直接与天线连接;接口区有与单片机相连的端口,还具有与射频区相连的收/发器、64字节的数据缓冲器、存放3套寄存器初始化文件的E2PROM、存放16套密钥的只写存储器以及进行三次证实和数据加密的密码机、防碰撞处理的防碰撞模块和控制单元。这是与射频卡实现无线通信的核心模块,也是读写器读写Mifare卡的关键接口芯片。
读写器工作时,与Mifare卡专用的读卡芯片(MF RC500)相连的天线线圈[3]不断地向外发出一组固定频率的电磁波(13.56MHz),当有卡靠近时,卡片内有一个LC串联谐振电路,其频率与读写器的发射频率相同,这样在电磁波的激励下,LC谐振电路产生共振,从而使电容充电有了电荷。在这个电容另一端,接有一个单向导电的电子泵,将电容内的电荷送到另一个电容内存储。当电容器充电达到2V时,此电容就作为电源为卡片上的其他电路提供工作电压,将卡内数据发射出去或接收读写器发来的数据与保存。
3 系统组成
非接触式IC卡应用系统由Mifare卡、发卡器、读卡器和PC管理机组成,如图1所示。其中Mifare卡存放身份号(PIN)等相关数据,由发卡器将密码和数据一次性写入完成。发卡器实际上是一种通用写卡器,直接与PC机的RS-232串行口相连或经过RS-485网络间接与PC机相连,由系统管理员管理,通过PC机设置或选择好要写入的数据,发出写卡命令完成对Mifare卡的数据及密码的写入。与读卡器不同,发卡器往往处于被动地位,不主动读写进入射频能量范围内的射频卡,必须接收PC机的命令才操作,即必须联机才能工作;而读卡器往往可以脱离PC管理机工作。读卡器是主动操作的,只要有非接触式IC卡进入读卡器天线射频能量范围,读卡器便可读写卡中相关指定扇区的数据。
发卡器与读卡器在硬件设计上大同小异,都是由单片机控制专用读写芯片(MF RC500),再加上一些必要的外围器件组成。图2为读卡器硬件系统组成。读卡器用P89C58BP单片机作主控制器;MF RC500射频芯片作为单片机与射频卡通讯的中介;74HC595作显示驱动器驱动LED数码显示器,PS/2总线作为通用编码键盘接口,键盘与LED显示器作为人机交互接口;AT24C256串行E2PROM作数据存储器;DS1302串行时钟芯片作硬件实时时钟;MAX232或MAX485作串口信号转换;DS1232作看门狗定时器;Q9012三极管作提示报警信号驱动,有卡进入并读卡成功指示灯闪一下,喇叭叫一声。Mifare射频卡进入距离射频天线100mm内,读卡器就可以读到卡中的数据。读卡器读到Mifare射频卡中的数据后,系统单片机要将所读数据及刷卡的时间一起存入存储器AT24C256,并在LED显示器上显示卡数据。没有卡进入读卡器工作范围时,系统读出实时时钟芯片中的时间,在显示器上显示当前时间。读卡出错,显示出错标志。主控器P89C58BP内部有32KB的Flash存储器,256字节RAM,可方便反复擦写、修改程序,同时,由于外部不用扩展程序存储器,可以简化电路设计,减小读卡器的尺寸,同时有较多的I/O口提供给系统使用。
5.2 读/写卡程序设计
读写卡过程是一个很复杂的程序执行过程,要执行一系列的操作指令,调用多个C51函数。包括装载密码,询卡,防冲突,选卡,验证密码,读写卡,停卡。这一系列的操作必须按固定的顺序进行。在没有Mifare卡进入射频天线有效范围时,在低5位显示当前时钟,当有Mifare卡进入到射频天线的有效范围,读卡程序验证卡及密码成功后,将卡号和读卡时间及相关数据作为一条记录存入E2PROM存储器中,并在LED显示器高5位上显示卡号。
程序设计采用单片机汇编语言和KeilC51混合编程。看门狗定时器中断服务程序采用汇编语言编写,其它程序采用C语言编写。程序的每一部分按模块化设计成一个文件,单独调试通过后,再在KeilC51环境下加入到工程文件中汇编生成HEX文件,用仿真器进行仿真通过后,写入P89C58BP芯片中脱离仿真器运行。
6 结束语
本文设计的Mifare系列射频卡读写器能够读写多种Mifare系列射频卡,如Mifare 1 S50、Mifare Light和Mifare Pro等,读写距离在10cm范围内。该读写器操作方便灵活,只要通过计算机串口按规定协议发送命令给它即可完成读卡、写卡、取消和更改密码等操作;也可设置为脱离计算机独立工作方式,必要时再将所存储的记录数据上传到上位机供其处理。本读写器已经实际应用在长沙某非接触式IC卡预付费电度表的售电系统中,系统运行良好、可靠性高。实际应用中证明:此射频卡读写器系统读写非接触式IC卡片迅速、方便、可靠、安全、稳定,深受用户欢迎。有足够的优势取代目前仍使用磁卡和接触式IC卡读写器的应用,具有巨大的市场竞争力和广阔的发展前景。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。