非接触IC卡在考勤机上的应用设计
本文所设计的非接触IC卡考勤机,是在参考传统机械式考勤机的基础上所作出的进一步的改进。传统的机械式考勤机虽然较可靠,但由于其将考勤数据记录在纸片上,大量的考勤数据需要人工统计,既费时又费力,而且容易出错。本文所介绍考勤机采用电子时钟,计时准确,操作方便,考勤数据通过RS485总线上传给计算机,统计快捷又准确。
1、 系统工作原理
本考勤机以完全兼容与MCS-5l系列微处理机的ATMEL公司的AT89C52单片机作为微控制器,采用I2C总线的PCF8583作为考勤机时钟,以I2C总线的多片(可选)AT24C64作为考勤机的不掉电存储器,采用大屏幕点阵LCD显示,并以RS485接口和计算机通信。组成了一套功能齐全的非接触IC卡考勤系统。当IC卡在天线区域经过时,单片机自动把IC卡里边的相关信息读到考勤机上,再把打卡时间一起存到存储器里边,计算机可以通过RS485串口把相关打卡信息读到计算机上,再进行统计、报表和打印输出等。其基本原理框图如下:
2、非接触IC卡数据编码格式
MIFAREl IC卡的核心是PHILIPS公司的Mifarel IC S50系列微模块,内建高速CMOS EEPROM和MCU,并自带一副高效率射频天线。它总共有1 kBytes的容量,其中又分为16个扇区(Sector),每个扇区分为4个块(Block),每块16Bytes,考勤卡只需要使用其中的一个扇区(1扇区),地址编码如下:
地址0-3:自定义员工工号
地址4-7:员工工号的反码
地址8-15:备用
Blockl和Block2地址备用
Block3
地址0-5:密码A(KEYA)
地址6-9:状态字节
地址工0-15:密码B(KEYB)
3、非接触IC卡读写的硬件实现
非接触IC卡的读写采用PHILIPS公司的读写模块MFCM200。此模块自带天线接口,通过天线接口连接读写天线,直接从IC卡读写数据。单片机直接从数据总线读写天线区域的IC卡数据。IC卡读写的硬件原理如下图所示:
4、非接触IC卡读写的软件实现
MFCM200能执行有限的一些指令,并将这些指令传输到MIFAREl卡片上。
每一个指令包含7个独立的步骤,每一个步骤在不同的指令执行中有不一样的时序。以下是MFCM200通信基本指令集。
Request:寻卡
Anticoll:防重叠(碰撞)
Select:选卡片
Authentication:密码认证
Loadkey:力口载密码
Read:读数据
Write:写数据
Increment:土曾值
Decrement:减值
Restore:存储
Transfer:传送
Halt:停止
在每一次读写IC卡数据时,必须按顺序先执行Request、Anticoll、Select、Authentication等指令,然后才能执行Read和Write指令,下面重点介绍Read和Write指令的使用。
(1)''Read读数据指令
Read指令允许单片机通过MFCM200来读取MIFAREl卡片上完整的16个Bytes的数据块(Data blocks)。
只有在预先Authentication认证指令完成后,才允许进行对Mifare l卡片上的某一数据扇区进行Read指令操作。
Read指令操作只能一个块(B1ock)一个块地读,即只能16个字节一次性地读取。如果只要求某Block中的几个字节的数据,也只能一个整块16个字节一起读取,由程序员选取指定的字节。
从卡片上读到的数据必须由单片机进行校验,以确保数据的有效性。
(2)Write写数据指令
Write指令允许用户写数据到MIFARE l卡片上(完整的16个BYTEs的数据块(Data blocks))。只有在先Authentication认证指令完成后,才允许进行对要求的数据扇区或数据块(Block)进行Write指令操作。
结束语
近几年来,随着IC智能卡中的非接触IC卡(射频卡)的高度稳定性和高度安全保密性,使之在IC智能卡领域中异军突起,成为当今智能卡中的流行宠物。做为非接触工C卡中的主流,MIFARE技术已经被制定为国际标准:IS0/IEC14443 TYPE A标准。此卡在考勤系统中使用,是IC卡最典型的应用之一,此卡同时也支持一卡多用,如考勤、门禁、售饭等,应用前景非常广阔。