2 射频IC卡读卡子系统
本子系统完成读写射频卡、保存刷卡资料、发出控制开关量等功能。
2.1 读卡子系统结构设计
本子系统选用PHILIPS公司的MF1 IC S50芯片的非接触式IC卡。这种卡的RF接口为ISO/IEC 14443A,工作频率为13.56MHz,内含1KB EEPROM。EEPROM的组成包括16个扇区,每扇区有4个区,每区有16字节。读卡芯片选用PHILIPS公司的MF RC500,这种芯片与单片机接口简单,有自动检测与单片机接口方式的功能。单片机使用AT89S52,选用ATMEL的DataFlash AT45DB161B保存刷卡资料,系统设定资料保存在Serial EEPROM 24C02中,时间芯片选用DS1302。系统结构如图3所示。单片机是主控芯片。与读卡芯片RC500的接口为:P0[0..7]接RC500的 D0..D7,P1.4接RSTPD,P1.5接NCS,P3.2接IRQ,P3.6和P3.7接NWR和NRD。与AT45DB161B的接口为: P1.0接SO,P1.1接SI,P1.2接SCK,P1.3接CS。与DS1302的接口为:P2.0接SCLK,P2.1接I/O,P2.2接CE。与24C02的接口为:P2.6接SCL,P2.7接SDA。单片机的P3.3、P3.4、P3.5接显示驱动。P2.3接开关量控制,P2.4接蜂鸣器。

2.2 读卡子系统软件设计
本子系统软件设计包括:对MF1卡进行读写操作;读取和设定时间芯片的日期和时间;保存刷卡资料和设定资料;发送显示信息和发出开关信号等。以下主要介绍MF1卡的读写操作部分。
MF1卡的状态机如图4所示。当MF1卡进入读卡器天线的工作区时,经Reset后进入IDLE状态。此时可以接收从RC500发来的指令。

询卡指令REQA,当MF1卡收到REQA后,会用ATQA回答,ATQA由两个字节组成,其中b7和b8表示UID的大小,b1~b5为防碰撞位,其他位为0。若RC500收到ATQA,则表示在天线的工作区有卡存在。此后进入防碰撞循环。
防碰撞循环开始时,并不知道UID,所以RC500发送cascade level 1 的select code,并指定NVB= 20。此时MF1卡要回复自己的UID。如果没有碰撞,则RC500会收到完整的4字节UID,否则,用碰撞发生位置更新NVB的值,重发指令,直到收到完整的4字节UID。然后RC500再用这个select code,并设NVB=70,加上4字节UID,发给MF1卡。MF1卡将收到的UID与自己的UID比较,如果相同,则回复SAK。此时RC500检查 SAK。如果b3为1,则表示UID不完整,RC500将cascade level加1,重新循环,直到收到的SAK b3为0,才表示Select完成。此后进入认证阶段。
进行认证之前,必须先用RC500的LoadKeyE2或LoadKey指令将密码装载到RC500的Key Buffer中,然后对指定的扇区发出Authent1指令和Authent2指令。如果认证通过,则可进入读写阶段。
在读写阶段,RC500可以通过写本扇区的Sector Trailer来修改此扇区的密码和存取条件,也可以根据存取条件对本扇区的Data Block进行读、写、增、减、恢复和转移。
本设计在局域网和广域网中使用方便。经过反复测试,系统性能稳定、可靠。
参考文献
1 W Richard Steven.TCP/IP Illustrated Vol 1、2、3.AddisonWesley,1996
2 Andrew S.Tanenbaum.计算机网络(第三版).北京:清华大学出版社,2000
3 Philips Semiconductors.MF1 IC S50 Functional Specification.http://www.semiconductors.philips.com,2001
4 Philips Semiconductors.MF RC500 Product Specification.http://www.semiconductors.philips.com,2004